示例#1
0
    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)
示例#2
0
    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)
示例#3
0
 def test_open(self):
     with Store.open(**self.config) as store:
         self.assertFalse(store.closed)