diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py
index 928c4c7988..84fc757e26 100644
--- a/django/contrib/auth/forms.py
+++ b/django/contrib/auth/forms.py
@@ -98,7 +98,7 @@ class UserChangeForm(forms.ModelForm):
password = ReadOnlyPasswordHashField(label=_("Password"),
help_text=_("Raw passwords are not stored, so there is no way to see "
"this user's password, but you can change the password "
- "using this form."))
+ "using this form."))
class Meta:
model = User
diff --git a/tests/auth_tests/test_views.py b/tests/auth_tests/test_views.py
index a6571a7cca..5ebe9f2938 100644
--- a/tests/auth_tests/test_views.py
+++ b/tests/auth_tests/test_views.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import datetime
import itertools
+import os
import re
from importlib import import_module
@@ -943,14 +944,28 @@ class ChangelistTests(AuthViewsTestCase):
self.assertEqual(row.change_message, 'No fields changed.')
def test_user_change_password(self):
+ user_change_url = reverse('auth_test_admin:auth_user_change', args=(self.admin.pk,))
+ password_change_url = reverse('auth_test_admin:auth_user_password_change', args=(self.admin.pk,))
+
+ response = self.client.get(user_change_url)
+ # Test the link inside password field help_text.
+ rel_link = re.search(
+ r'you can change the password using this form',
+ force_text(response.content)
+ ).groups()[0]
+ self.assertEqual(
+ os.path.normpath(user_change_url + rel_link),
+ os.path.normpath(password_change_url)
+ )
+
response = self.client.post(
- reverse('auth_test_admin:auth_user_password_change', args=(self.admin.pk,)),
+ password_change_url,
{
'password1': 'password1',
'password2': 'password1',
}
)
- self.assertRedirects(response, reverse('auth_test_admin:auth_user_change', args=(self.admin.pk,)))
+ self.assertRedirects(response, user_change_url)
row = LogEntry.objects.latest('id')
self.assertEqual(row.change_message, 'Changed password.')
self.logout()