示例#1
0
    def test_generate_password_uses_correct_gpg_id(self):
        store = PasswordStore(self.dir)

        def get_gpg_ids_used(filename):
            gpg = subprocess.Popen(
                [GPG_BIN, '--list-packets',
                 os.path.join(self.dir, filename)],
                shell=False,
                stdout=subprocess.PIPE)
            gpg.wait()
            pubkeys = []
            for line in gpg.stdout.readlines():
                line = line.decode()
                if line.startswith(':pubkey'):
                    pubkeys.append(line.split()[-1])

            return pubkeys

        store.generate_password('should_use_main_key')
        pubkeys = get_gpg_ids_used('should_use_main_key.gpg')
        self.assertTrue(len(pubkeys) == 1)
        self.assertEqual(pubkeys[0], '6C8110881C10BC07')

        store.generate_password('Email/should_use_secondary_key')
        pubkeys = get_gpg_ids_used(
            os.path.join('Email', 'should_use_secondary_key.gpg'))
        self.assertTrue(len(pubkeys) == 1)
        self.assertEqual(pubkeys[0], '4B52397C4C1C5D70')
示例#2
0
    def test_generate_password(self):
        only_letters = PasswordStore.generate_password(digits=False,
                                                       symbols=False)

        self.assertTrue(only_letters.isalpha())

        alphanum = PasswordStore.generate_password(digits=True, symbols=False)
        self.assertTrue(alphanum.isalnum())
        for char in alphanum:
            self.assertTrue(char not in string.punctuation)

        length_100 = PasswordStore.generate_password(length=100)
        self.assertEqual(len(length_100), 100)
示例#3
0
    def test_generate_in_place(self):
        store = PasswordStore(self.dir)

        self.assertRaises(Exception,
                          store.generate_password,
                          'nope.org',
                          first_line_only=True)

        store.insert_password('nope.org', 'pw\nremains intact')
        store.generate_password('nope.org', length=3, first_line_only=True)

        new_content = store.get_decrypted_password('nope.org')
        new_password, _, remainder = new_content.partition('\n')
        self.assertNotEqual(new_password, 'pw')
        self.assertEqual(remainder, 'remains intact')
    def test_generate_password(self):
        only_letters = PasswordStore.generate_password(
            digits=False,
            symbols=False
        )

        self.assertTrue(only_letters.isalpha())

        alphanum = PasswordStore.generate_password(digits=True, symbols=False)
        self.assertTrue(alphanum.isalnum())
        for char in alphanum:
            self.assertTrue(char not in string.punctuation)

        length_100 = PasswordStore.generate_password(length=100)
        self.assertEqual(len(length_100), 100)
示例#5
0
def generate(pass_name, pass_length, no_symbols):
    symbols = not no_symbols

    password = PasswordStore.generate_password(digits=True,
                                               symbols=symbols,
                                               length=pass_length)

    print(password)
示例#6
0
def generate(pass_name, pass_length, no_symbols):
    symbols = not no_symbols

    password = PasswordStore.generate_password(
        digits=True,
        symbols=symbols,
        length=pass_length
    )

    print(password)
示例#7
0
    def test_generate_password(self):
        store = PasswordStore(self.dir)

        store.generate_password('letters.net', digits=False, symbols=False)
        only_letters = store.get_decrypted_password('letters.net')
        self.assertTrue(only_letters.isalpha())

        store.generate_password('alphanum.co.uk', digits=True, symbols=False)
        alphanum = store.get_decrypted_password('alphanum.co.uk')
        self.assertTrue(alphanum.isalnum())
        for char in alphanum:
            self.assertTrue(char not in string.punctuation)

        store.generate_password('hundred.org', length=100)
        length_100 = store.get_decrypted_password('hundred.org')
        self.assertEqual(len(length_100), 100)