From: Sam Zaydel Date: Sun, 1 Apr 2018 22:52:01 +0000 (-0700) Subject: Want to have option to capitalize first letter of each word. X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=032d2f8b804685e2f30ac854eafd66878c3d8c20;p=redacted-XKCD-password-generator.git Want to have option to capitalize first letter of each word. --- diff --git a/tests/test_xkcdpass.py b/tests/test_xkcdpass.py index 88579fd..6350df2 100644 --- a/tests/test_xkcdpass.py +++ b/tests/test_xkcdpass.py @@ -75,6 +75,7 @@ class XkcdPasswordTests(unittest.TestCase): results["upper"] = xkcd_password.set_case(words, method="upper") results["alternating"] = xkcd_password.set_case(words, method="alternating") results["random"] = xkcd_password.set_case(words, method="random", testing=True) + results["first"] = xkcd_password.set_case(words, method="first") words_after = set(word.lower() for group in list(results.values()) for word in group) @@ -84,6 +85,7 @@ class XkcdPasswordTests(unittest.TestCase): # Test that the words have been uppered or lowered respectively. self.assertTrue(all(word.islower() for word in results["lower"])) self.assertTrue(all(word.isupper() for word in results["upper"])) + self.assertTrue(all(word.istitle() for word in results["first"])) # Test that the words have been correctly uppered randomly. expected_random_result_1 = ['THIS', 'IS', 'ONLY', 'a', 'test'] expected_random_result_2 = ['THIS', 'IS', 'a', 'test', 'ALSO'] diff --git a/xkcdpass/xkcd_password.py b/xkcdpass/xkcd_password.py index 78b0b69..fe4d8a8 100755 --- a/xkcdpass/xkcd_password.py +++ b/xkcdpass/xkcd_password.py @@ -240,6 +240,11 @@ def upper_case(words): """ return [w.upper() for w in words] +def first_upper_case(words): + """ + Set First character of each word to UPPER case. + """ + return [w.capitalize() for w in words] def lower_case(words): """ @@ -268,7 +273,9 @@ def random_case(words, testing=False): CASE_METHODS = {"alternating": alternating_case, "upper": upper_case, "lower": lower_case, - "random": random_case} + "random": random_case, + "first": first_upper_case, + } def set_case(words, method="lower", testing=False):