Exemple #1
0
def main():
    parser = argparse.ArgumentParser(
        description="Generate a passphrase using the Diceware algorithm.",
        formatter_class=argparse.RawDescriptionHelpFormatter,
    )
    parser.add_argument(
        '--version',
        action='version',
        version=version_message.format(version=__version__),
    )
    parser.add_argument(
        '-n', '--wordcount', metavar='N',
        type=int, default=6,
        help="the number of words to build the passphrase from",
    )
    parser.add_argument(
        '-l', '--language', metavar='LANG',
        default='en', choices=list(get_languages()),
        help="the language to use for the words of the passphrase",
    )
    parser.add_argument(
        '-s', '--separator', metavar='SEP',
        default=' ',
        help='the separator to use between the words',
    )
    args = parser.parse_args()

    passphrase = generate_passphrase(
        args.wordcount,
        language=args.language,
        separator=args.separator
    )
    print(passphrase)
Exemple #2
0
 def test_default_language(self):
     passphrase = generate_passphrase(2).split()
     password_choices = get_word_dict('en').values()
     self.assertTrue(all(pw in password_choices for pw in passphrase))
Exemple #3
0
 def test_en_beale(self):
     passphrase = generate_passphrase(2, language='en-beale').split()
     password_choices = get_word_dict('en-beale').values()
     self.assertTrue(all(pw in password_choices for pw in passphrase))
Exemple #4
0
 def test_unsupported_language(self):
     with self.assertRaisesRegex(ValueError, "unsupported language 'foo'"):
         generate_passphrase(1, language='foo')
Exemple #5
0
 def test_custom_separator(self):
     passphrase = generate_passphrase(2, separator='\t')
     self.assertGreater(len(passphrase), 0)
     self.assertEqual(passphrase.count('\t'), 1)
Exemple #6
0
 def test_two_words(self):
     passphrase = generate_passphrase(2)
     self.assertGreater(len(passphrase), 0)
     self.assertEqual(passphrase.count(' '), 1)
Exemple #7
0
 def test_one_word(self):
     passphrase = generate_passphrase(1)
     self.assertGreater(len(passphrase), 0)
     self.assertEqual(passphrase.count(' '), 0)
Exemple #8
0
 def test_zero_words(self):
     self.assertEqual(generate_passphrase(0), '')