diff --git a/src/pobsync_backend/tests/test_views.py b/src/pobsync_backend/tests/test_views.py index 76569ee..286b2fd 100644 --- a/src/pobsync_backend/tests/test_views.py +++ b/src/pobsync_backend/tests/test_views.py @@ -1203,6 +1203,26 @@ class ViewTests(TestCase): self.assertFalse(schedule.prune) self.assertEqual(schedule.prune_max_delete, 8) + def test_schedule_form_renders_existing_schedule_values(self) -> None: + self.client.force_login(self.staff_user) + host = HostConfig.objects.create(host="web-01", address="web-01.example.test") + ScheduleConfig.objects.create( + host=host, + cron_expr="45 4 * * 1", + user="backup", + enabled=True, + prune_max_delete=8, + ) + + response = self.client.get(reverse("edit_host_schedule", args=[host.host])) + + self.assertEqual(response.status_code, 200) + self.assertContains(response, "Edit Schedule") + self.assertContains(response, 'value="45 4 * * 1"', html=False) + self.assertContains(response, 'value="backup"', html=False) + self.assertContains(response, 'value="8"', html=False) + self.assertNotContains(response, 'value="15 2 * * *"', html=False) + def test_schedule_form_rejects_invalid_cron(self) -> None: self.client.force_login(self.staff_user) host = HostConfig.objects.create(host="web-01", address="web-01.example.test") diff --git a/src/pobsync_backend/views.py b/src/pobsync_backend/views.py index 8bbce78..9c97a62 100644 --- a/src/pobsync_backend/views.py +++ b/src/pobsync_backend/views.py @@ -535,7 +535,11 @@ def edit_host_schedule(request, host: str): messages.success(request, f"Schedule saved for {host_config.host}.") return redirect("host_detail", host=host_config.host) else: - form = ScheduleConfigForm(instance=schedule, initial=_default_schedule_initial()) + form = ( + ScheduleConfigForm(instance=schedule) + if schedule + else ScheduleConfigForm(initial=_default_schedule_initial()) + ) return render( request,