def test_result_returns_expected_form_class(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.user_a, self.sub) self.assertTrue(issubclass(result, Form)) self.assertTrue(hasattr(result, 'fields')) self.assertTrue(hasattr(result, 'required_fields')) self.assertTrue(hasattr(result, 'validators'))
def test_noneditable_fields_are_excluded(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.staff_user, self.sub) self.assertNotIn(F.AdditionalInformation, result.fields) self.assertNotIn(F.ReasonsForApplying, result.fields) self.assertNotIn(F.AdditionalInformation, result.required_fields) self.assertNotIn(F.ReasonsForApplying, result.required_fields)
def test_staff_user_gets_fields_from_all_orgs(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.staff_user, self.sub) self.assertIn(F.FirstName, result.fields) self.assertIn(F.EmailField, result.fields) self.assertIn(F.ContactPreferences, result.fields) self.assertIn(F.PhoneNumberField, result.fields) self.assertIn(F.DateOfBirthField, result.fields)
def get_form_class(self): return get_edit_form_class_for_user_and_submission( self.request.user, self.submission)
def test_nonstaff_user_gets_required_fields_from_all_orgs(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.user_a, self.sub) self.assertIn(F.FirstName, result.required_fields) self.assertIn(F.EmailField, result.required_fields)
def test_nonstaff_user_does_not_get_fields_from_other_org(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.user_a, self.sub) self.assertNotIn(F.PhoneNumberField, result.fields)
def test_nonstaff_user_gets_fields_from_own_org(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.user_a, self.sub) self.assertIn(F.FirstName, result.fields) self.assertIn(F.EmailField, result.fields) self.assertIn(F.DateOfBirthField, result.fields)
def test_result_combines_all_validators(self): result = edit_form_service.get_edit_form_class_for_user_and_submission( self.staff_user, self.sub) self.assertIn(validator_a, result.validators) self.assertIn(validator_b, result.validators)