From fcc7dc5781667932bf0bf8bec76df458836e5e95 Mon Sep 17 00:00:00 2001 From: Gary Jarrel Date: Mon, 27 Mar 2023 23:26:06 +1100 Subject: Fixed #34438 -- Reallowed extending UserCreationForm. Regression in 298d02a77a69321af8c0023df3250663e9d1362d. --- tests/auth_tests/test_forms.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'tests') diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py index c3ce1f570f..7a80adbf31 100644 --- a/tests/auth_tests/test_forms.py +++ b/tests/auth_tests/test_forms.py @@ -372,6 +372,35 @@ class UserCreationFormTest(TestDataMixin, TestCase): ["A user with that username already exists."], ) + @override_settings(AUTH_USER_MODEL="auth_tests.ExtensionUser") + def test_case_insensitive_username_custom_user_and_error_message(self): + class CustomUserCreationForm(UserCreationForm): + class Meta(UserCreationForm.Meta): + model = ExtensionUser + fields = UserCreationForm.Meta.fields + ("date_of_birth",) + error_messages = { + "username": {"unique": "This username has already been taken."} + } + + ExtensionUser.objects.create_user( + username="testclient", + password="password", + email="testclient@example.com", + date_of_birth=datetime.date(1984, 3, 5), + ) + data = { + "username": "TeStClIeNt", + "password1": "test123", + "password2": "test123", + "date_of_birth": "1980-01-01", + } + form = CustomUserCreationForm(data) + self.assertIs(form.is_valid(), False) + self.assertEqual( + form["username"].errors, + ["This username has already been taken."], + ) + # To verify that the login form rejects inactive users, use an authentication # backend that allows them. -- cgit v1.3