Skip to content

Commit 1814445

Browse files
committed
Add more tests
1 parent 02812bf commit 1814445

File tree

2 files changed

+180
-44
lines changed

2 files changed

+180
-44
lines changed

tests/test_lib.py

Lines changed: 85 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,113 @@
11
import unittest
22
from password_validator import lib
33

4+
45
class TestLib(unittest.TestCase):
56
def test_minimum(self):
6-
self.assertEqual(lib.minimum('TestPass', True, 8), True, 'should return True if pwd length is 8')
7-
self.assertEqual(lib.minimum('TestPasss', True, 8), True, 'should return True if pwd length is > 8')
8-
self.assertEqual(lib.minimum('TestPas', True, 8), False, 'should return False if pwd length is < 8')
7+
self.assertEqual(lib.minimum('TestPass', True, 8), True,
8+
'should return True if pwd length is 8')
9+
self.assertEqual(lib.minimum('TestPasss', True, 8),
10+
True, 'should return True if pwd length is > 8')
11+
self.assertEqual(lib.minimum('TestPas', True, 8), False,
12+
'should return False if pwd length is < 8')
913

1014
def test_maximum(self):
11-
self.assertEqual(lib.maximum('TestPass', True, 8), True, 'should return True if pwd length is > 8')
12-
self.assertEqual(lib.maximum('TestPasss', True, 8), False, 'should return False if pwd length is > 8')
13-
self.assertEqual(lib.maximum('TestPas', True, 8), True, 'should return True if pwd length is > 8')
15+
self.assertEqual(lib.maximum('TestPass', True, 8), True,
16+
'should return True if pwd length is > 8')
17+
self.assertEqual(lib.maximum('TestPasss', True, 8),
18+
False, 'should return False if pwd length is > 8')
19+
self.assertEqual(lib.maximum('TestPas', True, 8), True,
20+
'should return True if pwd length is > 8')
1421

1522
def test_letters(self):
16-
self.assertEqual(lib.letters('qwerTy', True), True, 'should return True if pwd has letters')
17-
self.assertEqual(lib.letters('qwe123', True), True, 'should return True if pwd has letters and digits')
18-
self.assertEqual(lib.letters('12344', True), False, 'should return False if pwd doesn\'t have letters')
19-
20-
self.assertEqual(lib.letters('qwerTy', False), False, 'should return False if pwd has letters and check is negative')
21-
self.assertEqual(lib.letters('qwe123', False), False, 'should return False if pwd has letters and digits, and check is negative')
22-
self.assertEqual(lib.letters('12344', False), True, 'should return True if pwd doesn\'t have letters and check is negative')
23+
self.assertEqual(lib.letters('qwerTy', True), True,
24+
'should return True if pwd has letters')
25+
self.assertEqual(lib.letters('qwe123', True), True,
26+
'should return True if pwd has letters and digits')
27+
self.assertEqual(lib.letters('12344', True), False,
28+
'should return False if pwd doesn\'t have letters')
29+
30+
self.assertEqual(lib.letters('qwerTy', False), False,
31+
'should return False if pwd has letters and check is negative')
32+
self.assertEqual(lib.letters('qwe123', False), False,
33+
'should return False if pwd has letters and digits, and check is negative')
34+
self.assertEqual(lib.letters('12344', False), True,
35+
'should return True if pwd doesn\'t have letters and check is negative')
2336

2437
def test_digits(self):
25-
self.assertEqual(lib.digits('12344', True), True, 'should return True if pwd has digits')
26-
self.assertEqual(lib.digits('qwe123', True), True, 'should return True if pwd has digits and letters')
27-
self.assertEqual(lib.digits('qwerTy', True), False, 'should return False if pwd doesn\'t have digits')
28-
29-
self.assertEqual(lib.digits('12344', False), False, 'should return False if pwd has digits and the check is negative')
30-
self.assertEqual(lib.digits('qwe123', False), False, 'should return False if pwd has digits and letters, and the check is negative')
31-
self.assertEqual(lib.digits('qwerTy', False), True, 'should return True if pwd doesn\'t have digits and the check is negative')
38+
self.assertEqual(lib.digits('12344', True), True,
39+
'should return True if pwd has digits')
40+
self.assertEqual(lib.digits('qwe123', True), True,
41+
'should return True if pwd has digits and letters')
42+
self.assertEqual(lib.digits('qwerTy', True), False,
43+
'should return False if pwd doesn\'t have digits')
44+
45+
self.assertEqual(lib.digits('12344', False), False,
46+
'should return False if pwd has digits and the check is negative')
47+
self.assertEqual(lib.digits('qwe123', False), False,
48+
'should return False if pwd has digits and letters, and the check is negative')
49+
self.assertEqual(lib.digits('qwerTy', False), True,
50+
'should return True if pwd doesn\'t have digits and the check is negative')
3251

3352
def test_symbols(self):
34-
self.assertEqual(lib.symbols('qwe$u', True), True, 'should return True if pwd has symbols')
35-
self.assertEqual(lib.symbols('qwe£u', True), True, 'should return True if pwd has non-USD currency symbols')
36-
self.assertEqual(lib.symbols('qweu', True), False, 'should return False if pwd doesn\'t have symbols')
37-
38-
self.assertEqual(lib.symbols('qwe$u', False), False, 'should return False if pwd has symbols and check is negative')
39-
self.assertEqual(lib.symbols('qwe£u', False), False, 'should return False if pwd has non-USD currency symbols and check is negative')
40-
self.assertEqual(lib.symbols('qweu', False), True, 'should return True if pwd doesn\'t have symbols and check is negative')
41-
53+
self.assertEqual(lib.symbols('qwe$u', True), True,
54+
'should return True if pwd has symbols')
55+
self.assertEqual(lib.symbols('qwe£u', True), True,
56+
'should return True if pwd has non-USD currency symbols')
57+
self.assertEqual(lib.symbols('qweu', True), False,
58+
'should return False if pwd doesn\'t have symbols')
59+
60+
self.assertEqual(lib.symbols('qwe$u', False), False,
61+
'should return False if pwd has symbols and check is negative')
62+
self.assertEqual(lib.symbols('qwe£u', False), False,
63+
'should return False if pwd has non-USD currency symbols and check is negative')
64+
self.assertEqual(lib.symbols('qweu', False), True,
65+
'should return True if pwd doesn\'t have symbols and check is negative')
4266

4367
def test_spaces(self):
44-
self.assertEqual(lib.spaces('word1 word2', True), True, 'should return True if pwd has spaces')
45-
self.assertEqual(lib.spaces('word', True), False, 'should return False if pwd has no space')
68+
self.assertEqual(lib.spaces('word1 word2', True), True,
69+
'should return True if pwd has spaces')
70+
self.assertEqual(lib.spaces('word', True), False,
71+
'should return False if pwd has no space')
4672

47-
self.assertEqual(lib.spaces('word1 word2', False), False, 'should return False if pwd has spaces and check is negative')
48-
self.assertEqual(lib.spaces('word', False), True, 'should return True if pwd has no space and check is negative')
73+
self.assertEqual(lib.spaces('word1 word2', False), False,
74+
'should return False if pwd has spaces and check is negative')
75+
self.assertEqual(lib.spaces('word', False), True,
76+
'should return True if pwd has no space and check is negative')
4977

5078
def test_uppercase(self):
51-
self.assertEqual(lib.uppercase('upperCase', True), True, 'should return True if pwd has uppercase letters')
52-
self.assertEqual(lib.uppercase('lowercase', True), False, 'should return False if pwd has no uppercase letters')
79+
self.assertEqual(lib.uppercase('upperCase', True), True,
80+
'should return True if pwd has uppercase letters')
81+
self.assertEqual(lib.uppercase('lowercase', True), False,
82+
'should return False if pwd has no uppercase letters')
5383

54-
self.assertEqual(lib.uppercase('uppserCase', False), False, 'should return False if pwd has uppercase letters and check is negative')
55-
self.assertEqual(lib.uppercase('lowercase', False), True, 'should return True if pwd has no uppercase letters and check is negative')
84+
self.assertEqual(lib.uppercase('uppserCase', False), False,
85+
'should return False if pwd has uppercase letters and check is negative')
86+
self.assertEqual(lib.uppercase('lowercase', False), True,
87+
'should return True if pwd has no uppercase letters and check is negative')
5688

5789
def test_lowercase(self):
58-
self.assertEqual(lib.lowercase('lowerCase', True), True, 'should return True if pwd has lowercase letters')
59-
self.assertEqual(lib.lowercase('UPPERCASE', True), False, 'should return False if pwd has no lowercase letters')
90+
self.assertEqual(lib.lowercase('lowerCase', True), True,
91+
'should return True if pwd has lowercase letters')
92+
self.assertEqual(lib.lowercase('UPPERCASE', True), False,
93+
'should return False if pwd has no lowercase letters')
6094

61-
self.assertEqual(lib.lowercase('lowerCase', False), False, 'should return False if pwd has lowercase letters and check is negative')
62-
self.assertEqual(lib.lowercase('UPPERCASE', False), True, 'should return True if pwd has no lowercase letters and check is negative')
95+
self.assertEqual(lib.lowercase('lowerCase', False), False,
96+
'should return False if pwd has lowercase letters and check is negative')
97+
self.assertEqual(lib.lowercase('UPPERCASE', False), True,
98+
'should return True if pwd has no lowercase letters and check is negative')
6399

64100
def test_applyRegexp(self):
65-
self.assertEqual(lib.applyRegexp('somePassword123', True, r'^[a-zA-Z]+\d{3}'), True, 'should return True if pwd has matches regex')
66-
self.assertEqual(lib.applyRegexp('somePassword123', True, r'^[a-zA-Z]+\d{4}'), False, 'should return False if pwd doesn\'t match regex')
101+
self.assertEqual(lib.applyRegexp('somePassword123', True,
102+
r'^[a-zA-Z]+\d{3}'), True, 'should return True if pwd has matches regex')
103+
self.assertEqual(lib.applyRegexp('somePassword123', True,
104+
r'^[a-zA-Z]+\d{4}'), False, 'should return False if pwd doesn\'t match regex')
105+
106+
self.assertEqual(lib.applyRegexp('somePassword123', False,
107+
r'^[a-zA-Z]+\d{3}'), False, 'should return False if pwd has matches regex and check is negative')
108+
self.assertEqual(lib.applyRegexp('somePassword123', False,
109+
r'^[a-zA-Z]+\d{4}'), True, 'should return True if pwd doesn\'t match regex and check is negative')
67110

68-
self.assertEqual(lib.applyRegexp('somePassword123', False, r'^[a-zA-Z]+\d{3}'), False, 'should return False if pwd has matches regex and check is negative')
69-
self.assertEqual(lib.applyRegexp('somePassword123', False, r'^[a-zA-Z]+\d{4}'), True, 'should return True if pwd doesn\'t match regex and check is negative')
70111

71112
if __name__ == '__main__':
72113
unittest.main()

tests/test_password_validator.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import unittest
2+
from password_validator import PasswordValidator
3+
4+
5+
class TestPasswordValidator(unittest.TestCase):
6+
def setUp(self):
7+
self.schema = PasswordValidator()
8+
9+
def test_validate(self):
10+
res = self.schema.min(8).validate('pwd')
11+
self.assertFalse(res, 'should return Boolean')
12+
13+
def test_min(self):
14+
self.assertFalse(self.schema.min(8).validate(
15+
'pwd'), 'should return False is pwd is less than the length specified')
16+
self.assertTrue(self.schema.min(8).validate(
17+
'longPassword'), 'should return True is pwd is greater than the length specified')
18+
self.assertTrue(self.schema.min(8).validate(
19+
'12345678'), 'should return True is pwd is equal to the length specified')
20+
21+
def test_max(self):
22+
self.assertTrue(self.schema.max(8).validate(
23+
'pwd'), 'should return True is pwd is less than the length specified')
24+
self.assertFalse(self.schema.max(8).validate(
25+
'longPassword'), 'should return False is pwd is greater than the length specified')
26+
self.assertTrue(self.schema.max(8).validate(
27+
'12345678'), 'should return True is pwd is equal to the length specified')
28+
29+
def test_letters(self):
30+
self.assertTrue(self.schema.letters().validate(
31+
'pwd1234'), 'should return True is pwd has letters')
32+
self.assertFalse(self.schema.letters().validate(
33+
'1234'), 'should return False is pwd doesn\'t have letters')
34+
35+
def test_digits(self):
36+
self.assertTrue(self.schema.digits().validate(
37+
'pwd1234'), 'should return True is pwd has digits')
38+
self.assertFalse(self.schema.digits().validate(
39+
'pwd'), 'should return False is pwd doesn\'t have digits')
40+
41+
def test_symbols(self):
42+
self.assertTrue(self.schema.symbols().validate(
43+
'pwd$'), 'should return True is pwd has symbols')
44+
self.assertFalse(self.schema.symbols().validate(
45+
'pwd'), 'should return False is pwd doesn\'t have symbols')
46+
47+
def test_spaces(self):
48+
self.assertTrue(self.schema.spaces().validate(
49+
'pwd 1234'), 'should return True is pwd has spaces')
50+
self.assertFalse(self.schema.spaces().validate(
51+
'pwd1234'), 'should return False is pwd doesn\'t have spaces')
52+
53+
def test_uppercase(self):
54+
self.assertTrue(self.schema.uppercase().validate(
55+
'pWD1234'), 'should return True is pwd has uppercase letters')
56+
self.assertFalse(self.schema.uppercase().validate(
57+
'pwd1234'), 'should return False is pwd doesn\'t have uppercase letters')
58+
59+
def test_lowercase(self):
60+
self.assertTrue(self.schema.lowercase().validate(
61+
'pWD1234'), 'should return True is pwd has lowercase letters')
62+
self.assertFalse(self.schema.lowercase().validate(
63+
'PWD1234'), 'should return False is pwd doesn\'t have lowercase letters')
64+
65+
def test_has(self):
66+
self.assertTrue(self.schema.has().lowercase().validate(
67+
'pWD1234'), 'should return cause no difference if used without args')
68+
69+
def test_has_with_string(self):
70+
self.assertTrue(self.schema.has('1234').validate(
71+
'pwd1234'), 'should return True if the pwd matches the regex passed in arg')
72+
self.assertFalse(self.schema.has('12345').validate(
73+
'pwd1234'), 'should return False if the pwd matches the regex passed in arg')
74+
75+
def test_has_with_regex(self):
76+
self.assertTrue(self.schema.has(r'^p1').validate(
77+
'p1234'), 'should return True if the pwd matches the regex passed in arg')
78+
self.assertFalse(self.schema.has(r'12345$').validate(
79+
'p1234'), 'should return False if the pwd matches the regex passed in arg')
80+
81+
def test_no(self):
82+
self.assertTrue(self.schema.no().lowercase().validate(
83+
'PWD1234'), 'should return cause no difference if used without args')
84+
85+
def test_no_with_string(self):
86+
self.assertFalse(self.schema.no('1234').validate(
87+
'pwd1234'), 'should return False if the pwd has string passed in arg')
88+
89+
def test_no_with_regex(self):
90+
self.assertTrue(self.schema.no(r'^12345$').validate(
91+
'p1234'), 'should return True if the pwd matches the regex passed in arg')
92+
93+
94+
if __name__ == '__main__':
95+
unittest.main()

0 commit comments

Comments
 (0)