from hc.test import BaseTestCase class CronPreviewTestCase(BaseTestCase): def test_it_works(self): payload = { "schedule": "* * * * *", "tz": "UTC" } r = self.client.post("/checks/cron_preview/", payload) self.assertContains(r, "cron-preview-title", status_code=200) def test_it_handles_invalid_cron_expression(self): for schedule in [None, "", "*", "100 100 100 100 100"]: payload = {"schedule": schedule, "tz": "UTC"} r = self.client.post("/checks/cron_preview/", payload) self.assertContains(r, "Invalid cron expression", status_code=200) def test_it_handles_invalid_timezone(self): for tz in [None, "", "not-a-timezone"]: payload = {"schedule": "* * * * *", "tz": tz} r = self.client.post("/checks/cron_preview/", payload) self.assertContains(r, "Invalid timezone", status_code=200) def test_it_handles_missing_arguments(self): r = self.client.post("/checks/cron_preview/", {}) self.assertContains(r, "Invalid cron expression", status_code=200) def test_it_rejects_get(self): r = self.client.get("/checks/cron_preview/", {}) self.assertEqual(r.status_code, 405)