|
@@ -61,59 +61,59 @@ class RepositoryTestCase(RepositoryTestCaseBase):
|
|
|
def test2(self):
|
|
|
"""Test multiple sequential transactions
|
|
|
"""
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
- self.repository.put(b'00000000000000000000000000000001', b'foo')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
+ self.repository.put(H(1), b'foo')
|
|
|
self.repository.commit()
|
|
|
- self.repository.delete(b'00000000000000000000000000000000')
|
|
|
- self.repository.put(b'00000000000000000000000000000001', b'bar')
|
|
|
+ self.repository.delete(H(0))
|
|
|
+ self.repository.put(H(1), b'bar')
|
|
|
self.repository.commit()
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000001'), b'bar')
|
|
|
+ self.assert_equal(self.repository.get(H(1)), b'bar')
|
|
|
|
|
|
def test_consistency(self):
|
|
|
"""Test cache consistency
|
|
|
"""
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'foo')
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo2')
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'foo2')
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'bar')
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'bar')
|
|
|
- self.repository.delete(b'00000000000000000000000000000000')
|
|
|
- self.assert_raises(Repository.ObjectNotFound, lambda: self.repository.get(b'00000000000000000000000000000000'))
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'foo')
|
|
|
+ self.repository.put(H(0), b'foo2')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'foo2')
|
|
|
+ self.repository.put(H(0), b'bar')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'bar')
|
|
|
+ self.repository.delete(H(0))
|
|
|
+ self.assert_raises(Repository.ObjectNotFound, lambda: self.repository.get(H(0)))
|
|
|
|
|
|
def test_consistency2(self):
|
|
|
"""Test cache consistency2
|
|
|
"""
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'foo')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'foo')
|
|
|
self.repository.commit()
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo2')
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'foo2')
|
|
|
+ self.repository.put(H(0), b'foo2')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'foo2')
|
|
|
self.repository.rollback()
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'foo')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'foo')
|
|
|
|
|
|
def test_overwrite_in_same_transaction(self):
|
|
|
"""Test cache consistency2
|
|
|
"""
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo2')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
+ self.repository.put(H(0), b'foo2')
|
|
|
self.repository.commit()
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), b'foo2')
|
|
|
+ self.assert_equal(self.repository.get(H(0)), b'foo2')
|
|
|
|
|
|
def test_single_kind_transactions(self):
|
|
|
# put
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
self.repository.commit()
|
|
|
self.repository.close()
|
|
|
# replace
|
|
|
self.repository = self.open()
|
|
|
with self.repository:
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'bar')
|
|
|
+ self.repository.put(H(0), b'bar')
|
|
|
self.repository.commit()
|
|
|
# delete
|
|
|
self.repository = self.open()
|
|
|
with self.repository:
|
|
|
- self.repository.delete(b'00000000000000000000000000000000')
|
|
|
+ self.repository.delete(H(0))
|
|
|
self.repository.commit()
|
|
|
|
|
|
def test_list(self):
|
|
@@ -131,22 +131,22 @@ class RepositoryTestCase(RepositoryTestCaseBase):
|
|
|
|
|
|
def test_max_data_size(self):
|
|
|
max_data = b'x' * MAX_DATA_SIZE
|
|
|
- self.repository.put(b'00000000000000000000000000000000', max_data)
|
|
|
- self.assert_equal(self.repository.get(b'00000000000000000000000000000000'), max_data)
|
|
|
+ self.repository.put(H(0), max_data)
|
|
|
+ self.assert_equal(self.repository.get(H(0)), max_data)
|
|
|
self.assert_raises(IntegrityError,
|
|
|
- lambda: self.repository.put(b'00000000000000000000000000000001', max_data + b'x'))
|
|
|
+ lambda: self.repository.put(H(1), max_data + b'x'))
|
|
|
|
|
|
|
|
|
class RepositoryCommitTestCase(RepositoryTestCaseBase):
|
|
|
|
|
|
def add_keys(self):
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
- self.repository.put(b'00000000000000000000000000000001', b'bar')
|
|
|
- self.repository.put(b'00000000000000000000000000000003', b'bar')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
+ self.repository.put(H(1), b'bar')
|
|
|
+ self.repository.put(H(3), b'bar')
|
|
|
self.repository.commit()
|
|
|
- self.repository.put(b'00000000000000000000000000000001', b'bar2')
|
|
|
- self.repository.put(b'00000000000000000000000000000002', b'boo')
|
|
|
- self.repository.delete(b'00000000000000000000000000000003')
|
|
|
+ self.repository.put(H(1), b'bar2')
|
|
|
+ self.repository.put(H(2), b'boo')
|
|
|
+ self.repository.delete(H(3))
|
|
|
|
|
|
def test_replay_of_missing_index(self):
|
|
|
self.add_keys()
|
|
@@ -264,19 +264,19 @@ class RepositoryAppendOnlyTestCase(RepositoryTestCaseBase):
|
|
|
def test_append_only(self):
|
|
|
def segments_in_repository():
|
|
|
return len(list(self.repository.io.segment_iterator()))
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
self.repository.commit()
|
|
|
|
|
|
self.repository.append_only = False
|
|
|
assert segments_in_repository() == 1
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
self.repository.commit()
|
|
|
# normal: compact squashes the data together, only one segment
|
|
|
assert segments_in_repository() == 1
|
|
|
|
|
|
self.repository.append_only = True
|
|
|
assert segments_in_repository() == 1
|
|
|
- self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
+ self.repository.put(H(0), b'foo')
|
|
|
self.repository.commit()
|
|
|
# append only: does not compact, only new segments written
|
|
|
assert segments_in_repository() == 2
|