Passed
Push — mvp ( aaa184...77fe1f )
by Yohann
01:29
created

test_regex.RegexTestCase.test_password_regex()   A

Complexity

Conditions 1

Size

Total Lines 8
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nop 1
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
import re
2
import unittest
3
4
from src.app import USERNAME_PATTERN, PASSWORD_PATTERN
5
6
7
class RegexTestCase(unittest.TestCase):
8
9
    def test_user_regex(self):
10
        self.validate(
11
            pattern=USERNAME_PATTERN,
12
            valides=['alex', 'hello_world', 'Lorem-Ipsum', 'Frank123'],
13
            invalids=['abc', 'an_user!', 'hello world']
14
        )
15
16
    def test_password_regex(self):
17
        self.validate(
18
            pattern=PASSWORD_PATTERN,
19
            valides=['8dlk9dA32%'],
20
            invalids=[
21
                'this is a way too long password to be validated !',
22
                'lettersOnly', '1235689', 'less_8', 'letter and space',
23
                'letters123', 'no uppercase letters 123'
24
            ]
25
        )
26
27
    def validate(self, pattern, valides, invalids):
28
        for valid in valides:
29
            self.assertIsNotNone(re.match(pattern, valid))
30
31
        for invalid in invalids:
32
            self.assertIsNone(re.match(pattern, invalid))
33
34
35
if __name__ == '__main__':
36
    unittest.main()
37