summaryrefslogtreecommitdiff
path: root/tests/auth_tests
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2020-11-28 10:20:29 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-11-30 06:34:22 +0100
commit3828427f634e1880467689e4cf0f8ffee95f0d05 (patch)
tree653b4625e021252c640a58f9412fc2f71c95c020 /tests/auth_tests
parent58740c0d7f441e7a12e5847fcd7409a78d9edd7b (diff)
Refs #31978 -- Fixed hint in admin's password reset confirmation form for custom username fields.
Thanks Jaap Roes for the report.
Diffstat (limited to 'tests/auth_tests')
-rw-r--r--tests/auth_tests/test_templates.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auth_tests/test_templates.py b/tests/auth_tests/test_templates.py
index 1b25489493..02f39a9cbf 100644
--- a/tests/auth_tests/test_templates.py
+++ b/tests/auth_tests/test_templates.py
@@ -1,3 +1,5 @@
+from datetime import date
+
from django.contrib.auth import authenticate
from django.contrib.auth.models import User
from django.contrib.auth.tokens import PasswordResetTokenGenerator
@@ -10,6 +12,7 @@ from django.urls import reverse
from django.utils.http import urlsafe_base64_encode
from .client import PasswordResetConfirmClient
+from .models import CustomUser
@override_settings(ROOT_URLCONF='auth_tests.urls')
@@ -59,6 +62,31 @@ class AuthTemplateTests(TestCase):
'<input class="hidden" autocomplete="username" value="jsmith">',
)
+ @override_settings(AUTH_USER_MODEL='auth_tests.CustomUser')
+ def test_password_reset_confirm_view_custom_username_hint(self):
+ custom_user = CustomUser.custom_objects.create_user(
+ email='joe@example.com',
+ date_of_birth=date(1986, 11, 11),
+ first_name='Joe',
+ )
+ client = PasswordResetConfirmClient()
+ default_token_generator = PasswordResetTokenGenerator()
+ token = default_token_generator.make_token(custom_user)
+ uidb64 = urlsafe_base64_encode(str(custom_user.pk).encode())
+ url = reverse('password_reset_confirm', kwargs={'uidb64': uidb64, 'token': token})
+ response = client.get(url)
+ self.assertContains(
+ response,
+ '<title>Enter new password | Django site admin</title>',
+ )
+ self.assertContains(response, '<h1>Enter new password</h1>')
+ # The username field is added to the password reset confirmation form
+ # to help browser's password managers.
+ self.assertContains(
+ response,
+ '<input class="hidden" autocomplete="username" value="joe@example.com">',
+ )
+
def test_password_reset_complete_view(self):
response = PasswordResetCompleteView.as_view()(self.request)
self.assertContains(response, '<title>Password reset complete | Django site admin</title>')