Refs #15779 -- Fixed UserChangeForm regression introduced by 1791a7e75

Thanks Tim Graham for reporting the regression.
This commit is contained in:
Claude Paroz 2015-03-27 20:07:35 +01:00
parent 1f2abf784a
commit c2bfd76ec3
2 changed files with 18 additions and 3 deletions

View File

@ -98,7 +98,7 @@ class UserChangeForm(forms.ModelForm):
password = ReadOnlyPasswordHashField(label=_("Password"), password = ReadOnlyPasswordHashField(label=_("Password"),
help_text=_("Raw passwords are not stored, so there is no way to see " help_text=_("Raw passwords are not stored, so there is no way to see "
"this user's password, but you can change the password " "this user's password, but you can change the password "
"using <a href=\"password/\">this form</a>.")) "using <a href=\"../password/\">this form</a>."))
class Meta: class Meta:
model = User model = User

View File

@ -3,6 +3,7 @@ from __future__ import unicode_literals
import datetime import datetime
import itertools import itertools
import os
import re import re
from importlib import import_module from importlib import import_module
@ -943,14 +944,28 @@ class ChangelistTests(AuthViewsTestCase):
self.assertEqual(row.change_message, 'No fields changed.') self.assertEqual(row.change_message, 'No fields changed.')
def test_user_change_password(self): 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 <a href="([^"]*)">this form</a>',
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( response = self.client.post(
reverse('auth_test_admin:auth_user_password_change', args=(self.admin.pk,)), password_change_url,
{ {
'password1': 'password1', 'password1': 'password1',
'password2': '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') row = LogEntry.objects.latest('id')
self.assertEqual(row.change_message, 'Changed password.') self.assertEqual(row.change_message, 'Changed password.')
self.logout() self.logout()