From 8a1cb70b769b70ea068cd9c941dec74cf8213921 Mon Sep 17 00:00:00 2001 From: Eli Chadwick Date: Tue, 28 Nov 2023 13:25:21 +0000 Subject: [PATCH] [#2585] make CoC question required --- amy/extforms/forms.py | 5 +++++ .../tests/test_training_request_form.py | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/amy/extforms/forms.py b/amy/extforms/forms.py index 834baeb15..243a375f1 100644 --- a/amy/extforms/forms.py +++ b/amy/extforms/forms.py @@ -34,6 +34,11 @@ class TrainingRequestForm(forms.ModelForm): helper = BootstrapHelper(wider_labels=True, add_cancel_button=False) + code_of_conduct_agreement = forms.BooleanField( + required=True, + label=TrainingRequest._meta.get_field("code_of_conduct_agreement").verbose_name, + ) + class Meta: model = TrainingRequest fields = ( diff --git a/amy/extforms/tests/test_training_request_form.py b/amy/extforms/tests/test_training_request_form.py index d55ade013..76f0dbb40 100644 --- a/amy/extforms/tests/test_training_request_form.py +++ b/amy/extforms/tests/test_training_request_form.py @@ -511,3 +511,20 @@ def test_eventbrite_url_validation__valid(self): # Assert self.assertEqual(rv.status_code, 200) self.assertNotContains(rv, self.INVALID_EVENTBRITE_URL_ERROR) + + def test_coc_agreement_required(self): + """Should error if CoC checkbox is not ticked.""" + # Arrange + self.setUpMembership() + data = {"code_of_conduct_agreement": "false"} + + # Act + rv = self.client.post(reverse("training_request"), data=data) + errors = dict(rv.context["form"].errors) + + # Assert + self.assertEqual(rv.status_code, 200) + self.assertIn("code_of_conduct_agreement", errors) + self.assertListEqual( + errors["code_of_conduct_agreement"], ["This field is required."] + )