예제 #1
0
 def test_iteritems(self):
     idx = NSIndex()
     for x in range(100):
         idx[bytes('%-0.32d' % x, 'ascii')] = x, x
     all = list(idx.iteritems())
     self.assert_equal(len(all), 100)
     second_half = list(idx.iteritems(marker=all[49][0]))
     self.assert_equal(len(second_half), 50)
     self.assert_equal(second_half, all[50:])
예제 #2
0
 def test_read_only(self):
     """Make sure read_only indices work even they contain a lot of tombstones
     """
     idx_name = tempfile.NamedTemporaryFile()
     idx = NSIndex.create(idx_name.name)
     for x in range(100):
         idx[bytes('%-0.32d' % x, 'ascii')] = x, x
     for x in range(99):
         del idx[bytes('%-0.32d' % x, 'ascii')]
     idx.flush()
     idx2 = NSIndex(idx_name.name, readonly=True)
     self.assert_equal(idx2[bytes('%-0.32d' % 99, 'ascii')], (99, 99))
예제 #3
0
 def test_iteritems(self):
     idx_name = tempfile.NamedTemporaryFile()
     idx = NSIndex.create(idx_name.name)
     for x in range(100):
         idx[bytes('%-0.32d' % x, 'ascii')] = x, x
     all = list(idx.iteritems())
     self.assert_equal(len(all), 100)
     second_half = list(idx.iteritems(marker=all[49][0]))
     self.assert_equal(len(second_half), 50)
     self.assert_equal(second_half, all[50:])
예제 #4
0
 def test_resize(self):
     n = 2000  # Must be >= MIN_BUCKETS
     idx_name = tempfile.NamedTemporaryFile()
     idx = NSIndex()
     idx.write(idx_name.name)
     initial_size = os.path.getsize(idx_name.name)
     self.assert_equal(len(idx), 0)
     for x in range(n):
         idx[bytes('%-32d' % x, 'ascii')] = x, x
     idx.write(idx_name.name)
     self.assert_true(initial_size < os.path.getsize(idx_name.name))
     for x in range(n):
         del idx[bytes('%-32d' % x, 'ascii')]
     self.assert_equal(len(idx), 0)
     idx.write(idx_name.name)
     self.assert_equal(initial_size, os.path.getsize(idx_name.name))
예제 #5
0
 def open_index(self):
     return NSIndex.read(
         os.path.join(self.tmppath, 'repository',
                      'index.{}'.format(self.get_head())))
예제 #6
0
 def extract_and_unlink_index():
     index_name = [n for n in os.listdir(os.path.join(self.tmppath, 'repository')) if n.startswith('index')][0]
     idx = NSIndex(os.path.join(self.tmppath, 'repository', index_name))
     os.unlink(os.path.join(self.tmppath, 'repository', index_name))
     return list(idx.iteritems())