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')
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)
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)
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)
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)
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)