コード例 #1
0
 def test_autocommit_after_other_command(self):
     self.db.set('key1', {'name': 'Alice'})
     self.db.set('key2', {'name': 'Alice'})
     self.db.set('key3', {'name': 'Alice'})
     # Should be committed
     self.db.delete('key3')
     db = MeuhDb(self.filename)  # reload
     self.assertTrue(db.exists('key3'))
コード例 #2
0
ファイル: test_indexes.py プロジェクト: brunobord/meuhdb
 def test_create_index_change_to_lazy_commit(self):
     self.db.create_index('good')
     self.db.commit()
     # reload
     db = MeuhDb(self.filename)
     result = db.filter(good=True)
     self.assertTrue(db._used_index)
     self.assertTrue('one' in result)
     self.assertTrue('two' in result)
     self.assertFalse('three' in result)
コード例 #3
0
ファイル: test_indexes.py プロジェクト: brunobord/meuhdb
 def test_create_index_change_to_lazy_commit(self):
     self.db.create_index('good')
     self.db.commit()
     # reload
     db = MeuhDb(self.filename)
     result = db.filter(good=True)
     self.assertTrue(db._used_index)
     self.assertTrue('one' in result)
     self.assertTrue('two' in result)
     self.assertFalse('three' in result)
コード例 #4
0
 def test_create_index(self):
     self.db.set('1', {'name': 'Alice'})
     self.db.set('2', {'name': 'Bob'})
     self.db.create_index('name')
     db = MeuhDb(self.filename)  # reload
     self.assertTrue(db.exists('1'))
     self.assertTrue(db.exists('2'))
     self.assertTrue('name' in db.indexes)
     index = db.indexes['name']
     self.assertEquals(index['Alice'], set(['1']))
     self.assertEquals(index['Bob'], set(['2']))
コード例 #5
0
 def test_autocommit_after(self):
     self.db.set('key', {'name': 'Alice'})
     db = MeuhDb(self.filename)  # reload
     self.assertFalse(db.exists('key'))
     self.db.set('key', {'name': 'Alice 2'})
     db = MeuhDb(self.filename)  # reload
     self.assertFalse(db.exists('key'))
     self.db.set('key', {'name': 'Alice 3'})
     db = MeuhDb(self.filename)  # reload
     self.assertTrue(db.exists('key'))
コード例 #6
0
 def test_ensure_set(self):
     self.db.create_index('name')
     self.db.set('1', {'name': 'Alice'})
     self.db.set('2', {'name': 'Alice'})
     db = MeuhDb(self.filename)  # reload
     self.assertTrue('name' in db.indexes)
     index = db.indexes['name']
     self.assertEquals(index['Alice'], set(['1', '2']))
コード例 #7
0
 def test_commit(self):
     self.db.set('key', {'hello': 'world'})
     db = MeuhDb(self.filename)  # reload
     self.assertFalse(db.exists("key"))
     self.db.commit()
     db = MeuhDb(self.filename)  # reload
     self.assertTrue(db.exists("key"))
     self.assertEquals(db.get('key'), {'hello': 'world'})
コード例 #8
0
 def test_update_name_index(self):
     self.db.set('1', {'name': 'Alice'})
     self.db.set('2', {'flag': True})
     self.db.create_index('name')
     self.db.update('2', {'name': 'Bob'})
     db = MeuhDb(self.filename)  # reload
     self.assertTrue('name' in db.indexes)
     index = db.indexes['name']
     self.assertEquals(index['Alice'], set(['1']))
     self.assertEquals(index['Bob'], set(['2']))
コード例 #9
0
def dump_load(backend):
    fd, filename = mkstemp()
    db = MeuhDb(filename, backend=backend)
    for x in range(200000):
        db.set("%d" % x, {'score': random.randrange(1, 100)})
    t0 = time.clock()
    db.commit()
    t1 = time.clock()
    t2 = time.clock()
    db = MeuhDb(filename, backend=backend)
    t3 = time.clock()
    unlink(filename)
    return t3 - t2, t1 - t0
コード例 #10
0
 def test_update(self):
     self.db.set('key', {'name': "me"})
     self.assertEquals(self.db.get('key'), {'name': "me"})
     self.db.update('key', {'thing': 'stuff'})
     db = MeuhDb(self.filename)  # reload
     self.assertEquals(db.get('key'), {'name': "me", 'thing': 'stuff'})
     # updating an non-existing key means creating it
     self.db.update('other', {'hello': 'world'})
     db = MeuhDb(self.filename)  # reload
     self.assertEquals(db.get('other'), {'hello': 'world'})
コード例 #11
0
ファイル: test_indexes.py プロジェクト: brunobord/meuhdb
 def test_indexes(self):
     self.db.create_index('name')
     self.db.set('key', {'name': 'Alice'})
     self.assertTrue('name' in self.db.indexes)
     index = self.db.indexes['name']
     self.assertTrue('Alice' in index)
     self.assertEquals(index['Alice'], set(['key']))
     self.db.commit()
     loaded_data = json.load(open(self.filename))
     self.assertNotIn('indexes', loaded_data)
     self.assertIn('index_defs', loaded_data)
     self.assertIn('name', loaded_data['index_defs'])
     self.assertEquals(loaded_data['index_defs']['name'], {'type': 'lazy'})
     # load data out of the lazy file
     db = MeuhDb(self.filename)
     self.assertEquals(db.data, {'key': {'name': 'Alice'}})
     self.assertEquals(db.indexes, {'name': {'Alice': set(['key'])}})
コード例 #12
0
def dump_load(backend):
    fd, filename = mkstemp()
    db = MeuhDb(filename, backend=backend)
    for x in range(200000):
        db.set("%d" % x, {'score': random.randrange(1, 100)})
    t0 = time.clock()
    db.commit()
    t1 = time.clock()
    t2 = time.clock()
    db = MeuhDb(filename, backend=backend)
    t3 = time.clock()
    unlink(filename)
    return t3 - t2, t1 - t0
コード例 #13
0
 def test_missing_backend(self):
     db = MeuhDb(backend='missing-json')
     self.assertEquals(db._meta.backend, 'json')
     self.assertEquals(self.db._meta.serializer, json.dumps)
     self.assertEquals(self.db._meta.deserializer, json.loads)
コード例 #14
0
 def test_insert(self):
     key = self.db.insert({'hello': 'world'})
     db = MeuhDb(self.filename)  # reload
     self.assertEquals(db.get(key), {'hello': 'world'})
コード例 #15
0
 def test_delete(self):
     self.db.set('key', {'hello': 'world'})
     self.db.delete('key')
     db = MeuhDb(self.filename)  # reload
     self.assertFalse(db.exists('key'))
コード例 #16
0
 def setUp(self):
     self.fd, self.filename = mkstemp()
     self.db = MeuhDb(self.filename, **self.options)
コード例 #17
0
 def test_delete_index(self):
     self.db.create_index('name')
     self.db.remove_index('name')
     db = MeuhDb(self.filename)  # reload
     self.assertFalse('name' in db.indexes)
コード例 #18
0
 def setUp(self):
     self.db = MeuhDb()  # in-memory DB
コード例 #19
0
 def test_set(self):
     self.db.set('key', {'hello': 'world'})
     db = MeuhDb(self.filename)  # reload
     self.assertEquals(db.get('key'), {'hello': 'world'})