This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user