From 4b8e4fdb82c57125d0b3a8c8731bfa9c25612f06 Mon Sep 17 00:00:00 2001 From: FrankApiyo Date: Thu, 19 Sep 2024 10:37:34 +0300 Subject: [PATCH] Update test case: Show expected error message --- oidc/settings.py | 4 ++-- tests/test_viewsets.py | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/oidc/settings.py b/oidc/settings.py index c5d9076..fcf24e0 100644 --- a/oidc/settings.py +++ b/oidc/settings.py @@ -18,8 +18,8 @@ "JWT_ALGORITHM": "HS256", "FIELD_VALIDATION_REGEX": { "username": { - "regex": "^(?!\d+$)[a-zA-Z0-9_]{3,}$", # noqa - "help_text": "Username should only contain alpha numeric characters", + "regex": r"^(?!\d+$)[a-zA-Z0-9_]{3,}$", # noqa + "help_text": "Username should only contain alpha numeric characters and should be at least 3 characters", } }, "REPLACE_USERNAME_CHARACTERS": "-.", diff --git a/tests/test_viewsets.py b/tests/test_viewsets.py index 154f9e7..e9c3cc5 100644 --- a/tests/test_viewsets.py +++ b/tests/test_viewsets.py @@ -48,8 +48,8 @@ "REPLACE_USERNAME_CHARACTERS": "-.", "FIELD_VALIDATION_REGEX": { "username": { - "regex": "^(?!\d+$)[a-zA-Z0-9_]{3,}$", - "help_text": "Username should only contain word characters & numbers i.e datatester23", + "regex": r"^(?!\d+$)[a-zA-Z0-9_]{3,}$", + "help_text": "Username should only contain word characters & numbers and should have 3 or more characters", }, }, } @@ -136,7 +136,7 @@ def test_returns_data_entry_template_on_invalid_username(self): def test_returns_data_entry_template_on_invalid_username_and_bad_email(self): """ Test that users are redirected to the data entry - page when username is not present in decoded token and + page when username provided in decoded token is invalid and provided email also does not provide a valid username """ view = UserModelOpenIDConnectViewset.as_view({"post": "callback"}) @@ -154,6 +154,11 @@ def test_returns_data_entry_template_on_invalid_username_and_bad_email(self): request = self.factory.post("/", data=data) response = view(request, auth_server="default") self.assertEqual(response.status_code, 400) + self.assertTrue( + response.rendered_content.startswith( + b'{"error":"Username should only contain word characters & numbers and should have 3 or more characters"' + ) + ) self.assertEqual(response.template_name, "oidc/oidc_user_data_entry.html") def test_unrecoverable_error_on_missing_claim(self):