From 37f4237c8c5a8fc86360cfcc9d9fe0750046bf32 Mon Sep 17 00:00:00 2001 From: Kipchirchir Sigei Date: Fri, 8 Mar 2024 10:43:20 +0300 Subject: [PATCH] Add tests Signed-off-by: Kipchirchir Sigei --- .../apps/main/tests/test_user_validation.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 onadata/apps/main/tests/test_user_validation.py diff --git a/onadata/apps/main/tests/test_user_validation.py b/onadata/apps/main/tests/test_user_validation.py new file mode 100644 index 0000000000..8c26fbafe2 --- /dev/null +++ b/onadata/apps/main/tests/test_user_validation.py @@ -0,0 +1,26 @@ +from onadata.apps.main.admin import CustomUserChangeForm, CustomUserCreationForm +from onadata.apps.main.tests.test_base import TestBase + +class TestUserValidation(TestBase): + def test_custom_user_creation_form_invalid_username(self): + # Try to create a user with a hyphenated username + form_data = { + 'username': 'john-doe', + 'password1': 'testpassword', + 'password2': 'testpassword' + } + form = CustomUserCreationForm(data=form_data) + self.assertFalse(form.is_valid()) + self.assertIn('username', form.errors) + errors = form.errors.get('username')[0] + self.assertEqual(str(errors), "Usernames cannot contain hyphens.") + + def test_custom_user_change_form_invalid_username(self): + # Try to change a user's username to one with a hyphen + user = self._create_user('bob-user', 'bob') + form_data = {'username': 'bob-user-1'} + form = CustomUserChangeForm(data=form_data, instance=user) + self.assertFalse(form.is_valid()) + self.assertIn('username', form.errors) + errors = form.errors.get('username')[0] + self.assertEqual(str(errors), "Usernames cannot contain hyphens.") \ No newline at end of file