From: Steven Tobin Date: Mon, 20 Nov 2023 23:03:46 +0000 (+0000) Subject: improvements to test_random_delimiter X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=90a717c8cb70394a40127366b3739edbaa82f1fa;p=redacted-XKCD-password-generator.git improvements to test_random_delimiter check both expected string length and expected number of delimiters --- diff --git a/tests/test_xkcdpass.py b/tests/test_xkcdpass.py index 826f2c4..505bc42 100644 --- a/tests/test_xkcdpass.py +++ b/tests/test_xkcdpass.py @@ -49,10 +49,21 @@ class XkcdPasswordTests(unittest.TestCase): self.assertIsNotNone(re.match('([a-z]+(_|$))+', result)) def test_random_delimiter(self): - wordlist = xkcd_password.generate_wordlist(WORDFILE, min_length=3, max_length=3) - result = xkcd_password.generate_xkcdpassword(wordlist, numwords=3, random_delimiters=True) - # result can be length 9, 10, or 11 depending on which random delimiters are chose - self.assertTrue(len(result) in {9, 10, 11}) + wordlength = 4 + numwords = 3 + wordlist = xkcd_password.generate_wordlist( + WORDFILE, min_length=wordlength, max_length=wordlength + ) + result = xkcd_password.generate_xkcdpassword( + wordlist, numwords=numwords, random_delimiters=True + ) + # check that the result is the right length + self.assertEquals(len(result), numwords * wordlength + (numwords - 1)) + # check we have the right number of delimiters + self.assertEqual( + len([x for x in result if x in set(xkcd_password.DEFAULT_DELIMITERS)]), + numwords - 1 + ) def test_set_case(self): words = "this is only a GREAT Test".lower().split()