def test_make_password_length(self): with self.assertRaises(AssertionError): make_password(length=1) with self.assertRaises(AssertionError): make_password(length='a') for i in range(4, 100): with self.subTest(i=i): self.assertTrue(len(make_password(length=i)) == i)
def test_make_password_no_chars(self): regex = re.compile(r'^[^ -\/:-@\[-`{-~]+$') for i in range(4, 100): with self.subTest(i=i): self.assertRegex(make_password(length=i, chars=False), regex)
def test_make_password_no_lower(self): regex = re.compile(r'[^a-z]+$') for i in range(4, 100): with self.subTest(i=i): self.assertRegex(make_password(length=i, lower=False), regex)
def test_make_password_no_numbers(self): regex = re.compile(r'\D+$') for i in range(4, 100): with self.subTest(i=i): self.assertRegex(make_password(length=i, numbers=False), regex)
def test_make_password_all_params_false(self): with self.assertRaises(AssertionError): make_password(numbers=False, upper=False, lower=False, chars=False)
def test_make_password_all_params_true(self): regex = re.compile( r'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[ -\/:-@\[-`{-~]).+$') self.assertRegex(make_password(), regex)
def test_make_password_sequece_not_allowed(self): regex = re.compile(r'^(?:[ -\/:-@\[-`{-~][a-z][A-Z][0-9])+$') for i in range(4, 10): with self.subTest(i=i): self.assertNotRegex(make_password(length=i), regex)
def test_make_password_no_special_chars(self): regex = re.compile(r'^[^ -\/:-@\[-`{-~]+$') for i in range(4, 100): self.assertRegex(make_password(chars=False), regex)
def test_make_password_no_numbers(self): regex = re.compile(r'^\D+$') for i in range(4, 100): self.assertRegex(make_password(numbers=False), regex)
def test_make_password_no_lower(self): regex = re.compile(r'^[^a-z]+$') for i in range(4, 100): self.assertRegex(make_password(lower=False), regex)