def test_get(self): db = [ { 'domain': 'example.org', 'username': '******', 'password': '******', 'comment': 'test account' }, { 'domain': 'example.org', 'username': '******', 'password': '******' }, { 'domain': 'test.org', 'username': '******', 'password': '******' } ] for cipher in ['aes', 'blowfish']: self.config['algorithm'] = cipher # Create memorious file loaded with accounts with Store.open(**self.config) as store: for fields in db: store.put(**fields) # Open and read memorious file with Store.open(**self.config) as store: accounts = list(store.get()) self.assertEqual(len(accounts), len(db)) for i, account in enumerate(accounts): fields = db[i] fields['id'] = i + 1 for k in fields.keys(): self.assertEqual(account[k], fields[k]) for k in (k for k in account.keys() if k not in fields.keys()): self.assertIsNone(account[k]) os.unlink(self.mem_file)
def test_put(self): for cipher in ['aes', 'blowfish']: self.config['algorithm'] = cipher with Store.open(**self.config) as store: fields = { 'domain': 'example.org', 'username': '******', 'password': '******', 'comment': 'test account' } store.put(**fields) accounts = list(store.get(**fields)) self.assertEqual(len(accounts), 1) for account in accounts: for k in fields.keys(): self.assertEqual(account[k], fields[k]) fields = { 'domain': 'example.org', 'username': '******', 'password': '******' } store.put(**fields) accounts = list(store.get(**fields)) self.assertEqual(len(accounts), 1) for account in accounts: for k in fields.keys(): self.assertEqual(account[k], fields[k]) self.assertIsNone(account['comment']) fields = { 'domain': 'test.org', 'username': '******', 'password': '******' } store.put(**fields) self.assertEqual(len(list(store.get())), 3) self.assertEqual(len(list(store.get(domain='example.org'))), 2) self.assertEqual(len(list(store.get(username='******'))), 2) self.assertEqual(len(list(store.get(username='******'))), 1) os.unlink(self.mem_file)
def test_open(self): with Store.open(**self.config) as store: self.assertFalse(store.closed)