Switch to upstream source from tarball ‘xkcdpass_1.4.0.orig.tar.gz’.
[debian_xkcdpass.git] / tests / xkcdp_tests.py
blob0a68da2f7114fe1ca7cc4d78d0c4c0edcfb2218b
1 import unittest
2 import subprocess
3 import re
4 from xkcdpass import xkcd_password
6 WORDFILE = 'xkcdpass/static/default.txt'
9 class XkcdPasswordTests(unittest.TestCase):
10 def setUp(self):
11 self.wordlist_full = xkcd_password.generate_wordlist(
12 wordfile=WORDFILE,
13 min_length=5,
14 max_length=8,)
15 self.wordlist_small = xkcd_password.generate_wordlist(
16 wordfile='tests/test_list.txt',
17 valid_chars='[a-z]')
19 def test_loadwordfile(self):
20 self.assertEquals(len(self.wordlist_full), 29612)
22 def test_regex(self):
23 self.assertNotIn("__$$$__", self.wordlist_small)
25 def test_acrostic(self):
26 word = "face"
27 result = xkcd_password.generate_xkcdpassword(
28 self.wordlist_small,
29 acrostic=word)
30 self.assertEquals("".join(map(lambda x: x[0], result.split())), word)
32 def test_commandlineCount(self):
33 count = 5
34 result = subprocess.check_output(
35 ["python", "xkcdpass/xkcd_password.py", "-w", WORDFILE,
36 "-c", str(count)])
37 self.assertTrue(result.count(b"\n"), count)
39 def test_delim(self):
40 tdelim = "_"
41 result = xkcd_password.generate_xkcdpassword(
42 self.wordlist_small,
43 delimiter=tdelim)
44 self.assertIsNotNone(re.match('([a-z]+(_|$))+', result))
47 if __name__ == '__main__':
48 suite = unittest.TestLoader().loadTestsFromTestCase(XkcdPasswordTests)
49 unittest.TextTestRunner(verbosity=2).run(suite)