From 0555eef13a105dbfd3cd9e19f93d6ce1fd7a41c7 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Sat, 20 Jul 2024 12:47:43 -0700 Subject: [PATCH 1/2] fix: prevent error when no file selected --- ietf/meeting/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 2948a2e71..253f2852f 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -2790,7 +2790,8 @@ class UploadOrEnterAgendaForm(UploadAgendaForm): def clean_file(self): submission_method = self.cleaned_data.get("submission_method") if submission_method == "upload": - return super().clean_file() + if self.cleaned_data.get("file", None) is not None: + return super().clean_file() return None def clean(self): From c7f6bdef0a9427f479b0db806423e8d2d3782bb5 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Sat, 20 Jul 2024 13:02:32 -0700 Subject: [PATCH 2/2] test: test missing file --- ietf/meeting/tests_views.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index d783ed9c7..db62fe620 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -6246,6 +6246,12 @@ class MaterialsTests(TestCase): q = PyQuery(r.content) self.assertTrue(q('form input[type="checkbox"]')) + # test not submitting a file + r = self.client.post(url, dict(submission_method="upload")) + self.assertEqual(r.status_code, 200) + q = PyQuery(r.content) + self.assertTrue(q("form .is-invalid")) + test_file = BytesIO(b'this is some text for a test') test_file.name = "not_really.json" r = self.client.post(url,dict(submission_method="upload",file=test_file))