diff --git a/diceware/__init__.py b/diceware/__init__.py index fbd364d104fca135678dbe44b73cab6b0b0b4c5e..7d58d84b118cd462a46d257e6216d3935e849118 100644 --- a/diceware/__init__.py +++ b/diceware/__init__.py @@ -142,15 +142,16 @@ def get_wordlist(file_descriptor): return result -def get_wordlist_path(lang): - """Get path to a wordlist file for language `lang`. +def get_wordlist_path(name): + """Get path to a wordlist file for a wordlist named `name`. - The `lang` string is a 2-char country code. Invalid codes raise a - ValueError. + The `name` string must not contain special chars beside ``-``, + ``_``, regular chars ``A-Z`` (upper or lower case) or + numbers. Invalid names raise a ValueError. """ - if not RE_WORDLIST_NAME.match(lang): - raise ValueError("Not a valid language code: %s" % lang) - basename = 'wordlist_%s.txt' % lang + if not RE_WORDLIST_NAME.match(name): + raise ValueError("Not a valid wordlist name: %s" % name) + basename = 'wordlist_%s.txt' % name return os.path.join(WORDLISTS_DIR, basename.lower()) diff --git a/tests/test_diceware.py b/tests/test_diceware.py index 52b49bc932704cc0189dd1ae7718385ba5b2865d..4f9efeebe651d52b3d9d414390abff5502decf0b 100644 --- a/tests/test_diceware.py +++ b/tests/test_diceware.py @@ -108,7 +108,7 @@ class TestDicewareModule(object): with pytest.raises(ValueError) as exc_info: get_wordlist_path('../../tmp') assert exc_info.value.args[0].startswith( - 'Not a valid language code') + 'Not a valid wordlist name') def test_get_wordlist_path_loweres_country_code(self): # upper case country codes are lowered