This commit is contained in:
@@ -9,10 +9,10 @@ from ..emails import PasswordSetEmail
|
||||
|
||||
|
||||
TEST_USERNAME = 'user'
|
||||
TEST_PASSWORD = u'me||ön 21ABll'
|
||||
TEST_PASSWORD = 'me||ön 21ABll'
|
||||
TEST_EMAIL = 'root@localhost'
|
||||
|
||||
PASSWORD_EMAIL_TEMPLATE = u"""Hallo {fullname},
|
||||
PASSWORD_EMAIL_TEMPLATE = """Hallo {fullname},
|
||||
|
||||
Benutzername: {username}
|
||||
Passwort: {password}
|
||||
@@ -23,7 +23,7 @@ URL: {base_url}/
|
||||
|
||||
class EmailTestCase(EmailTestMixin, TestCase):
|
||||
def setUp(self):
|
||||
super(EmailTestCase, self).setUp()
|
||||
super().setUp()
|
||||
model = get_user_model()
|
||||
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
|
||||
|
||||
@@ -38,7 +38,7 @@ class EmailTestCase(EmailTestMixin, TestCase):
|
||||
|
||||
self.assertSender(mail)
|
||||
self.assertRecipients(mail, [self.user])
|
||||
self.assertSubject(mail, u'Zugangsdaten')
|
||||
self.assertSubject(mail, 'Zugangsdaten')
|
||||
|
||||
expected_body = PASSWORD_EMAIL_TEMPLATE.format(
|
||||
fullname=self.user.get_full_name(),
|
||||
|
||||
@@ -9,7 +9,7 @@ from dav_base.tests.generic import FormDataSet, FormsTestCase
|
||||
from ..forms import LoginForm, SetPasswordForm, CreateAndSendPasswordForm
|
||||
|
||||
TEST_USERNAME = 'root@localhost'
|
||||
TEST_PASSWORD = u'me||ön 21ABll'
|
||||
TEST_PASSWORD = 'me||ön 21ABll'
|
||||
TEST_EMAIL = TEST_USERNAME
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ class LoginFormTestCase(FormsTestCase):
|
||||
|
||||
def test_labels(self):
|
||||
form = self.form_class()
|
||||
self.assertEqual(form.fields['username'].label, ugettext(u'E-Mail-Adresse'))
|
||||
self.assertEqual(form.fields['password'].label, ugettext(u'Password'))
|
||||
self.assertEqual(form.fields['username'].label, ugettext('E-Mail-Adresse'))
|
||||
self.assertEqual(form.fields['password'].label, ugettext('Password'))
|
||||
|
||||
def test_required(self):
|
||||
form = self.form_class()
|
||||
@@ -38,28 +38,28 @@ class LoginFormTestCase(FormsTestCase):
|
||||
FormDataSet({'username': '', 'password': self.test_password},
|
||||
expected_errors=[('username', 'required')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
super().test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_password_empty(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username, 'password': ''},
|
||||
expected_errors=[('password', 'required')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
super().test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_invalid_username(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username[::-1], 'password': self.test_password},
|
||||
expected_errors=[('__all__', 'invalid_login')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
super().test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_invalid_password(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username, 'password': self.test_password[::-1]},
|
||||
expected_errors=[('__all__', 'invalid_login')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
super().test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_inactive_user(self):
|
||||
self.user.is_active = False
|
||||
@@ -68,13 +68,13 @@ class LoginFormTestCase(FormsTestCase):
|
||||
FormDataSet({'username': self.test_username, 'password': self.test_password},
|
||||
expected_errors=[('__all__', 'invalid_login')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
super().test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_valid_credentials(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username, 'password': self.test_password}),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_valid_data(data_sets=data_sets)
|
||||
super().test_valid_data(data_sets=data_sets)
|
||||
|
||||
|
||||
class SetPasswordFormTestCase(FormsTestCase):
|
||||
@@ -98,56 +98,56 @@ class SetPasswordFormTestCase(FormsTestCase):
|
||||
FormDataSet({'new_password': 'mellonAB12+-', 'new_password_repeat': 'mellonAB13+-'},
|
||||
[('new_password_repeat', 'password_mismatch')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_empty(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': '', 'new_password_repeat': ''},
|
||||
[('new_password', 'required')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_too_short(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'mellon', 'new_password_repeat': 'mellon'},
|
||||
[('new_password', 'password_too_short')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_entirely_numeric(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': '1357924680', 'new_password_repeat': '1357924680'},
|
||||
[('new_password', 'password_entirely_numeric')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_too_similar(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': self.test_username, 'new_password_repeat': self.test_username},
|
||||
[('new_password', 'password_too_similar')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_too_common(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'password', 'new_password_repeat': 'password'},
|
||||
[('new_password', 'password_too_common')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_valid(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'mellonAB12+-', 'new_password_repeat': 'mellonAB12+-'}),
|
||||
FormDataSet({'new_password': 'mellonAB12+-', 'new_password_repeat': 'mellonAB12+-',
|
||||
'send_password_mail': True}),
|
||||
FormDataSet({'new_password': u'"ä§ MellonAB12+-', 'new_password_repeat': u'"ä§ MellonAB12+-'}),
|
||||
FormDataSet({'new_password': '"ä§ MellonAB12+-', 'new_password_repeat': '"ä§ MellonAB12+-'}),
|
||||
FormDataSet({'new_password': 'mellon12' * 128, 'new_password_repeat': 'mellon12' * 128}),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_valid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
super().test_valid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_save(self):
|
||||
new_passwords = [
|
||||
u'"ä§ Mellon12'
|
||||
'"ä§ Mellon12'
|
||||
'mellon12' * 128,
|
||||
]
|
||||
|
||||
@@ -162,7 +162,7 @@ class SetPasswordFormTestCase(FormsTestCase):
|
||||
@skip('Function is implemented in SetPasswordView instead of SetPasswordForm')
|
||||
def test_save_with_mail(self): # pragma: no cover
|
||||
new_passwords = [
|
||||
u'"ä§ Mellon12'
|
||||
'"ä§ Mellon12'
|
||||
'mellon12' * 128,
|
||||
]
|
||||
|
||||
@@ -193,7 +193,7 @@ class CreateAndSendPasswordFormTestCase(FormsTestCase):
|
||||
|
||||
def test_labels(self):
|
||||
form = self.form_class()
|
||||
self.assertEqual(form.fields['username'].label, ugettext(u'E-Mail-Adresse'))
|
||||
self.assertEqual(form.fields['username'].label, ugettext('E-Mail-Adresse'))
|
||||
|
||||
def test_required(self):
|
||||
form = self.form_class()
|
||||
|
||||
@@ -9,7 +9,7 @@ from selenium.webdriver.common.keys import Keys
|
||||
from dav_base.tests.generic import ScreenshotTestCase
|
||||
|
||||
TEST_USERNAME = 'root@localhost'
|
||||
TEST_PASSWORD = u'me||ön 21ABll'
|
||||
TEST_PASSWORD = 'me||ön 21ABll'
|
||||
TEST_EMAIL = TEST_USERNAME
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ class TestCase(ScreenshotTestCase):
|
||||
screenshot_prefix = 'dav_auth-'
|
||||
|
||||
def setUp(self):
|
||||
super(TestCase, self).setUp()
|
||||
super().setUp()
|
||||
# Need a test user
|
||||
self.test_username = TEST_USERNAME
|
||||
self.test_password = TEST_PASSWORD
|
||||
@@ -105,7 +105,7 @@ class TestCase(ScreenshotTestCase):
|
||||
|
||||
# Click on 'set password' -> save set password page
|
||||
user_menu = c.find_element_by_css_selector('#login-widget ul')
|
||||
link = user_menu.find_element_by_partial_link_text(ugettext(u'Passwort ändern'))
|
||||
link = user_menu.find_element_by_partial_link_text(ugettext('Passwort ändern'))
|
||||
link.click()
|
||||
password_field = self.wait_on_presence(c, (By.ID, 'id_new_password'))
|
||||
self.save_screenshot('empty_set_password_form', sequence=sequence_name)
|
||||
@@ -189,7 +189,7 @@ class TestCase(ScreenshotTestCase):
|
||||
dropdown_button = self.wait_on_presence(c, (By.ID, 'user_dropdown_button'))
|
||||
dropdown_button.click()
|
||||
user_menu = c.find_element_by_css_selector('#login-widget ul')
|
||||
link = user_menu.find_element_by_partial_link_text(ugettext(u'Logout'))
|
||||
link = user_menu.find_element_by_partial_link_text(ugettext('Logout'))
|
||||
link.click()
|
||||
self.wait_until_stale(c, user_menu)
|
||||
self.save_screenshot('logout_succeed', sequence=sequence_name)
|
||||
@@ -200,7 +200,7 @@ class TestCase(ScreenshotTestCase):
|
||||
self.wait_on_presence(c, (By.ID, 'id_username'))
|
||||
|
||||
# Locate password recreate link, click it -> save password recreate form
|
||||
link = c.find_element_by_partial_link_text(ugettext(u'Passwort vergessen'))
|
||||
link = c.find_element_by_partial_link_text(ugettext('Passwort vergessen'))
|
||||
link.click()
|
||||
username_field = self.wait_on_presence(c, (By.ID, 'id_username'))
|
||||
self.save_screenshot('empty_recreate_password_form', sequence=sequence_name)
|
||||
@@ -212,7 +212,7 @@ class TestCase(ScreenshotTestCase):
|
||||
self.save_screenshot('recreate_password_invalid_user', sequence=sequence_name)
|
||||
|
||||
# Locate password recreate link, click it
|
||||
link = c.find_element_by_partial_link_text(ugettext(u'Passwort vergessen'))
|
||||
link = c.find_element_by_partial_link_text(ugettext('Passwort vergessen'))
|
||||
link.click()
|
||||
username_field = self.wait_on_presence(c, (By.ID, 'id_username'))
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class TemplatesTestCase(SimpleTestCase):
|
||||
@tag('browser')
|
||||
class TestCase(SeleniumAuthMixin, SeleniumTestCase):
|
||||
def setUp(self):
|
||||
super(TestCase, self).setUp()
|
||||
super().setUp()
|
||||
# Need a test user
|
||||
self.test_username = TEST_USERNAME
|
||||
self.test_password = TEST_PASSWORD
|
||||
|
||||
@@ -8,19 +8,19 @@ from ..validators import PasswordScoreValidator, CustomWordlistPasswordValidator
|
||||
class PasswordScoreValidatorTestCase(SimpleTestCase):
|
||||
def test_too_little_score(self):
|
||||
passwords = [
|
||||
u'', # score = 0
|
||||
u'abcdefghijklmnopq', # score = 17
|
||||
u'Abcdefghijklmnop', # score = 16 + 1
|
||||
u'ABcdefghijklmno', # score = 15 + 2
|
||||
u'AB1defghijklmn', # score = 14 + 2 + 1
|
||||
u'AB12efghijklm', # score = 13 + 2 + 2
|
||||
u'AB12+fghijkl', # score = 12 + 2 + 2 + 1
|
||||
u'AB12+-ghijk', # score = 11 + 2 + 2 + 2
|
||||
u'AB12+-*hij', # score = 10 + 2 + 2 + 3
|
||||
u'AB12+-*hi/', # score = 10 + 2 + 2 + 3
|
||||
u'AB12+-*hi3', # score = 10 + 2 + 2 + 3
|
||||
u'AB12+-*hiC', # score = 10 + 2 + 2 + 3
|
||||
u'abcbbbgbbjklmnopqr', # score = 17
|
||||
'', # score = 0
|
||||
'abcdefghijklmnopq', # score = 17
|
||||
'Abcdefghijklmnop', # score = 16 + 1
|
||||
'ABcdefghijklmno', # score = 15 + 2
|
||||
'AB1defghijklmn', # score = 14 + 2 + 1
|
||||
'AB12efghijklm', # score = 13 + 2 + 2
|
||||
'AB12+fghijkl', # score = 12 + 2 + 2 + 1
|
||||
'AB12+-ghijk', # score = 11 + 2 + 2 + 2
|
||||
'AB12+-*hij', # score = 10 + 2 + 2 + 3
|
||||
'AB12+-*hi/', # score = 10 + 2 + 2 + 3
|
||||
'AB12+-*hi3', # score = 10 + 2 + 2 + 3
|
||||
'AB12+-*hiC', # score = 10 + 2 + 2 + 3
|
||||
'abcbbbgbbjklmnopqr', # score = 17
|
||||
]
|
||||
|
||||
validator = PasswordScoreValidator(min_classes=0)
|
||||
@@ -31,19 +31,19 @@ class PasswordScoreValidatorTestCase(SimpleTestCase):
|
||||
except ValidationError as e:
|
||||
self.assertEqual('too_little_score', e.code)
|
||||
else:
|
||||
self.fail(u'%s: no validation error was raised' % password)
|
||||
self.fail('%s: no validation error was raised' % password)
|
||||
|
||||
def test_too_few_classes(self):
|
||||
passwords = [
|
||||
u'', # classes = 0
|
||||
u'abcdefgh', # classes = 1
|
||||
u'abcdef+-', # classes = 2
|
||||
u'abcd12gh', # classes = 2
|
||||
u'abcd12-+', # classes = 3
|
||||
u'abCDefgh', # classes = 2
|
||||
u'abCDef+-', # classes = 3
|
||||
u'abCD12gh', # classes = 3
|
||||
u'ABCD12-+', # classes = 3
|
||||
'', # classes = 0
|
||||
'abcdefgh', # classes = 1
|
||||
'abcdef+-', # classes = 2
|
||||
'abcd12gh', # classes = 2
|
||||
'abcd12-+', # classes = 3
|
||||
'abCDefgh', # classes = 2
|
||||
'abCDef+-', # classes = 3
|
||||
'abCD12gh', # classes = 3
|
||||
'ABCD12-+', # classes = 3
|
||||
]
|
||||
|
||||
validator = PasswordScoreValidator(min_score=0, min_classes=4)
|
||||
@@ -54,20 +54,20 @@ class PasswordScoreValidatorTestCase(SimpleTestCase):
|
||||
except ValidationError as e:
|
||||
self.assertEqual('too_few_classes', e.code)
|
||||
else:
|
||||
self.fail(u'%s: no validation error was raised' % password)
|
||||
self.fail('%s: no validation error was raised' % password)
|
||||
|
||||
def test_valid(self):
|
||||
passwords = [
|
||||
u'Abcdefghijklmnopq',
|
||||
u'ABcdefghijklmnop',
|
||||
u'AB1defghijklmno',
|
||||
u'AB12efghijklmn',
|
||||
u'AB12+fghijklm',
|
||||
u'AB12+-ghijkl',
|
||||
u'AB12+-*hijk',
|
||||
u'ab1defghijklmnopq',
|
||||
u'abcd+fghijklmnopq',
|
||||
u'AB1CDEFGHIJKLMNOPQ',
|
||||
'Abcdefghijklmnopq',
|
||||
'ABcdefghijklmnop',
|
||||
'AB1defghijklmno',
|
||||
'AB12efghijklmn',
|
||||
'AB12+fghijklm',
|
||||
'AB12+-ghijkl',
|
||||
'AB12+-*hijk',
|
||||
'ab1defghijklmnopq',
|
||||
'abcd+fghijklmnopq',
|
||||
'AB1CDEFGHIJKLMNOPQ',
|
||||
]
|
||||
|
||||
validator = PasswordScoreValidator()
|
||||
@@ -82,23 +82,23 @@ class PasswordScoreValidatorTestCase(SimpleTestCase):
|
||||
class CustomWordlistPasswordValidatorTestCase(SimpleTestCase):
|
||||
def test_invalid(self):
|
||||
invalid_passwords = [
|
||||
(u'passwort', [
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'passwort\' enthalten.',
|
||||
('passwort', [
|
||||
'Das Passwort darf nicht die Zeichenfolge \'passwort\' enthalten.',
|
||||
]),
|
||||
(u'abcdDaVefgh', [
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'dav\' enthalten.',
|
||||
('abcdDaVefgh', [
|
||||
'Das Passwort darf nicht die Zeichenfolge \'dav\' enthalten.',
|
||||
]),
|
||||
(u'abcdsektIonefgh', [
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'sektion\' enthalten.',
|
||||
('abcdsektIonefgh', [
|
||||
'Das Passwort darf nicht die Zeichenfolge \'sektion\' enthalten.',
|
||||
]),
|
||||
(u'alpen12verein34KArlsruhE berge', [
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'karlsruhe\' enthalten.',
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'berge\' enthalten.',
|
||||
('alpen12verein34KArlsruhE berge', [
|
||||
'Das Passwort darf nicht die Zeichenfolge \'karlsruhe\' enthalten.',
|
||||
'Das Passwort darf nicht die Zeichenfolge \'berge\' enthalten.',
|
||||
]),
|
||||
(u'heinzel@alpenverein-karlsruhe.de', [
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'heinzel\' enthalten.',
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'alpenverein\' enthalten.',
|
||||
u'Das Passwort darf nicht die Zeichenfolge \'karlsruhe\' enthalten.',
|
||||
('heinzel@alpenverein-karlsruhe.de', [
|
||||
'Das Passwort darf nicht die Zeichenfolge \'heinzel\' enthalten.',
|
||||
'Das Passwort darf nicht die Zeichenfolge \'alpenverein\' enthalten.',
|
||||
'Das Passwort darf nicht die Zeichenfolge \'karlsruhe\' enthalten.',
|
||||
]),
|
||||
]
|
||||
|
||||
@@ -114,13 +114,13 @@ class CustomWordlistPasswordValidatorTestCase(SimpleTestCase):
|
||||
for error in errors:
|
||||
self.assertIn(error, expected_errors)
|
||||
else:
|
||||
self.fail(u'%s: no validation error was raised' % password)
|
||||
self.fail('%s: no validation error was raised' % password)
|
||||
|
||||
def test_valid(self):
|
||||
passwords = [
|
||||
u'',
|
||||
u'password',
|
||||
u'münchen',
|
||||
'',
|
||||
'password',
|
||||
'münchen',
|
||||
]
|
||||
|
||||
validator = CustomWordlistPasswordValidator()
|
||||
@@ -134,72 +134,72 @@ class CustomWordlistPasswordValidatorTestCase(SimpleTestCase):
|
||||
|
||||
class CharacterClassPasswordValidatorTestCase(SimpleTestCase):
|
||||
def setUp(self):
|
||||
super(CharacterClassPasswordValidatorTestCase, self).setUp()
|
||||
super().setUp()
|
||||
self.validator = CharacterClassPasswordValidator()
|
||||
|
||||
def test_invalid(self):
|
||||
invalid_passwords = [
|
||||
(u'', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'A+-', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
('A+-', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
]),
|
||||
(u'1234567890*', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('1234567890*', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'34*/()', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
('34*/()', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
]),
|
||||
(u'AA', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('AA', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'CD0.,', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
('CD0.,', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
]),
|
||||
(u'EF56', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('EF56', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'8GH?!8', [
|
||||
u'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
('8GH?!8', [
|
||||
'Das Passwort muss mindestens 2 Kleinbuchstaben enthalten.',
|
||||
]),
|
||||
(u'bbX', [
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('bbX', [
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'$cd%', [
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
('$cd%', [
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
]),
|
||||
(u'ef90', [
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('ef90', [
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'1g=h3~', [
|
||||
u'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
('1g=h3~', [
|
||||
'Das Passwort muss mindestens 2 Großbuchstaben enthalten.',
|
||||
]),
|
||||
(u'Gi&jH', [
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('Gi&jH', [
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
(u'IkK:i;', [
|
||||
u'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
('IkK:i;', [
|
||||
'Das Passwort muss mindestens 2 Ziffern enthalten.',
|
||||
]),
|
||||
(u'mKn4L8', [
|
||||
u'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
('mKn4L8', [
|
||||
'Das Passwort muss mindestens 2 Sonderzeichen enthalten.',
|
||||
]),
|
||||
]
|
||||
|
||||
@@ -215,10 +215,10 @@ class CharacterClassPasswordValidatorTestCase(SimpleTestCase):
|
||||
for error in errors:
|
||||
self.assertIn(error, expected_errors)
|
||||
else:
|
||||
self.fail(u'%s: no validation error was raised' % password)
|
||||
self.fail('%s: no validation error was raised' % password)
|
||||
|
||||
def test_valid(self):
|
||||
valid_passwords = [u'abCD12+-']
|
||||
valid_passwords = ['abCD12+-']
|
||||
validator = self.validator
|
||||
for password in valid_passwords:
|
||||
try:
|
||||
|
||||
@@ -10,7 +10,7 @@ from django.urls import reverse
|
||||
from ..forms import LoginForm, SetPasswordForm, CreateAndSendPasswordForm
|
||||
|
||||
TEST_USERNAME = 'root@localhost'
|
||||
TEST_PASSWORD = u'me||ön 21ABll'
|
||||
TEST_PASSWORD = 'me||ön 21ABll'
|
||||
TEST_EMAIL = TEST_USERNAME
|
||||
|
||||
|
||||
@@ -30,12 +30,12 @@ class ViewsTestCase(TestCase):
|
||||
cls.recreate_password_url = reverse('dav_auth:recreate_password')
|
||||
|
||||
# Some messages
|
||||
cls.wrong_credentials_message = ugettext(u'Benutzername oder Passwort falsch.')
|
||||
cls.logout_message = ugettext(u'Benutzer abgemeldet.')
|
||||
cls.set_password_message = ugettext(u'Passwort gespeichert.')
|
||||
cls.wrong_credentials_message = ugettext('Benutzername oder Passwort falsch.')
|
||||
cls.logout_message = ugettext('Benutzer abgemeldet.')
|
||||
cls.set_password_message = ugettext('Passwort gespeichert.')
|
||||
|
||||
def setUp(self):
|
||||
super(ViewsTestCase, self).setUp()
|
||||
super().setUp()
|
||||
# Need a test user
|
||||
self.test_username = TEST_USERNAME
|
||||
self.test_password = TEST_PASSWORD
|
||||
@@ -74,7 +74,7 @@ class ViewsTestCase(TestCase):
|
||||
|
||||
def test_integrated_login_succeed(self):
|
||||
username = self.user.username
|
||||
message = ugettext(u'Benutzer angemeldet: %(username)s') % {'username': username}
|
||||
message = ugettext('Benutzer angemeldet: %(username)s') % {'username': username}
|
||||
|
||||
response = self.client.post(self.login_url, {'username': username, 'password': self.test_password})
|
||||
self.assertEqual(response.status_code, 302)
|
||||
@@ -166,7 +166,7 @@ class ViewsTestCase(TestCase):
|
||||
'send_password_mail': True})
|
||||
self.assertEqual(len(django_mail.outbox), 1)
|
||||
mail = django_mail.outbox[0]
|
||||
recipient = u'"%s" <%s>' % (self.user.get_full_name(), self.user.email)
|
||||
recipient = '"%s" <%s>' % (self.user.get_full_name(), self.user.email)
|
||||
recipients = mail.recipients()
|
||||
self.assertIn(recipient, recipients)
|
||||
self.assertEqual(len(recipients), 1)
|
||||
@@ -202,7 +202,7 @@ class ViewsTestCase(TestCase):
|
||||
|
||||
self.assertEqual(len(django_mail.outbox), 1)
|
||||
mail = django_mail.outbox[0]
|
||||
recipient = u'"%s" <%s>' % (self.user.get_full_name(), self.user.email)
|
||||
recipient = '"%s" <%s>' % (self.user.get_full_name(), self.user.email)
|
||||
recipients = mail.recipients()
|
||||
self.assertIn(recipient, recipients)
|
||||
self.assertEqual(len(recipients), 1)
|
||||
|
||||
Reference in New Issue
Block a user