示例#1
0
 def test_digits_and_lower_passwords_fixed_lenght(self):
     rules = PasswordRules()
     rules.learn('abcde1')
     rules.learn('aacd12')
     generator = PasswordGenerator(rules)
     snapshots = [s for s in generator.iter_rules()]
     self.assertEqual(2, len(snapshots))
     self.assertEqual([2, 4], snapshots[0].counts)
     self.assertEqual([1, 5], snapshots[1].counts)
示例#2
0
 def test_digits_and_lower_single_password(self):
     rules = PasswordRules()
     rules.learn('ab1')
     generator = PasswordGenerator(rules)
     self.assertEqual(1, generator.count_rules())
     snapshots = [s for s in generator.iter_rules()]
     self.assertEqual(1, len(snapshots))
     self.assertEqual([1, 2], snapshots[0].counts)
     passwords = [p for p in snapshots[0].iter_passwords()]
     expected = (permutations(10, 1) * permutations(26, 2)) * 3
     self.assertEqual(expected, len(passwords))
示例#3
0
 def test_digits_and_lower_passwords_short(self):
     rules = PasswordRules()
     rules.learn('a1')
     rules.learn('ab1')
     generator = PasswordGenerator(rules)
     snapshots = [s for s in generator.iter_rules()]
     self.assertEqual(2, len(snapshots))
     # 1|a
     self.assertEqual([1, 1], snapshots[0].counts)
     self.assertEqual(26 * 10 * 2, snapshots[0].count_passwords())
     # 1|ab
     self.assertEqual([1, 2], snapshots[1].counts)
     self.assertEqual((26 * 25 / 2) * 10 * 3,
                      snapshots[1].count_passwords())
示例#4
0
 def test_password_count(self):
     rules = PasswordRules()
     rules.learn('abbdABBD12')
     rules.learn('abbdABBD^2')
     generator = PasswordGenerator(rules)
     self.assertEqual(2, generator.count_rules())
     snapshots = [s for s in generator.iter_rules()]
     self.assertEqual(2, len(snapshots))
     self.assertEqual([4, 2, 4, 0], snapshots[0].counts)
     chs = (26 * 2) * (26 * 2 - 1) * (26 * 2 - 2) * (26 * 2 - 3) / (2 * 3 *
                                                                    4)
     self.assertEqual(10 * chs * chs * (10 * 9 / 2),
                      snapshots[0].count_passwords())
     self.assertEqual([4, 1, 4, 1], snapshots[1].counts)
     self.assertEqual(10 * chs * chs * 10 * 29,
                      snapshots[1].count_passwords())
示例#5
0
 def test_empty(self):
     rules = PasswordRules()
     generator = PasswordGenerator(rules)
     snapshots = [s for s in generator.iter_rules()]
     self.assertEqual(0, len(snapshots))
     self.assertEqual(0, generator.count_rules())