Exemple #1
0
    def test_generate_passphrase_with_specific_language(self):
        # Given a generator that supports two languages
        generator = PassphraseGenerator(language_to_words={
            "en": ["boat"],
            "fr": ["bateau"]
        })
        assert generator.available_languages == {"en", "fr"}

        # When using it to create a passphrase for one of the two languages
        # It succeeds
        passphrase = generator.generate_passphrase(preferred_language="fr")

        # And the passphrase is in the chosen language
        assert "bateau" in passphrase
        assert "boat" not in passphrase
Exemple #2
0
    def test_generate_passphrase_with_specific_language_that_is_not_available(
            self):
        # Given a generator that supports two languages
        generator = PassphraseGenerator(
            language_to_words={
                "en": ["boat"],
                "fr": ["bateau"]
            },
            # With english as the fallback language
            fallback_language="en",
        )
        assert generator.available_languages == {"en", "fr"}

        # When using it to create a passphrase for another, non-supported language
        # It succeeds
        passphrase = generator.generate_passphrase(preferred_language="es")

        # And the passphrase is in the default/fallback language, english
        assert "boat" in passphrase
        assert "bateau" not in passphrase
Exemple #3
0
 def test_word_list_has_non_ascii_string(self):
     with pytest.raises(InvalidWordListError, match="non-ASCII words"):
         PassphraseGenerator(language_to_words={"en": ["word", "éoèô"]})
Exemple #4
0
 def test_word_list_will_generate_overly_short_passphrase(self):
     with pytest.raises(InvalidWordListError,
                        match="under the minimum length"):
         PassphraseGenerator(language_to_words={"en": ["b", "a"]})
Exemple #5
0
 def test_word_list_will_generate_overly_long_passphrase(self):
     with pytest.raises(InvalidWordListError,
                        match="over the maximum length"):
         PassphraseGenerator(
             language_to_words={"en": ["overlylongwordtogetoverthelimit"]})
Exemple #6
0
 def test_word_list_does_not_have_enough_words(self):
     with pytest.raises(InvalidWordListError, match="long-enough words"):
         PassphraseGenerator(
             language_to_words={"en": ["only", "three", "words"]})