Exemple #1
0
 def test_compress_changes(self):
     '''
     Compress a db with removed keys
     '''
     entries = 100
     w_dir = tempfile.mkdtemp()
     root = os.path.join(w_dir, 'db_root')
     db = sorbic.db.DB(root)
     rands = set()
     data = {1:1}
     for num in xrange(entries):
         key = str(num)
         db.insert(key, data)
     for _ in xrange(entries):
         rands.add(random.randint(0, entries - 1))
     for key in rands:
         db.rm(str(key))
     db.compress('', 0)
     for num in xrange(entries):
         key = str(num)
         pull_data = db.get(key)
         if num in rands:
             self.assertIsNone(pull_data)
         else:
             self.assertEqual(data, pull_data)
     shutil.rmtree(w_dir)
Exemple #2
0
 def test_compress_changes_depth(self):
     '''
     Run a scale db execution with the given db kwargs
     '''
     entries = 100
     w_dir = tempfile.mkdtemp()
     root = os.path.join(w_dir, 'db_root')
     db = sorbic.db.DB(root)
     data = {1:1}
     key = 'foo/bar'
     ids = []
     rm_ids = set()
     for num in xrange(entries):
         ids.append(db.insert(key, data)['id'])
     for _ in xrange(entries):
         rm_ids.add(ids[random.randint(0, entries - 1)])
     for rm_id in rm_ids:
         db.rm(key, rm_id)
     db.compress('foo', 0)
     for num in xrange(entries):
         pull_data = db.get(key)
         self.assertEqual(data, pull_data)
     shutil.rmtree(w_dir)