|
@@ -216,18 +216,18 @@ class RepositoryAppendOnlyTestCase(RepositoryTestCaseBase):
|
|
|
self.repository.commit()
|
|
|
|
|
|
self.repository.append_only = False
|
|
|
- assert segments_in_repository() == 1
|
|
|
+ assert segments_in_repository() == 2
|
|
|
self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
self.repository.commit()
|
|
|
# normal: compact squashes the data together, only one segment
|
|
|
- assert segments_in_repository() == 1
|
|
|
+ assert segments_in_repository() == 4
|
|
|
|
|
|
self.repository.append_only = True
|
|
|
- assert segments_in_repository() == 1
|
|
|
+ assert segments_in_repository() == 4
|
|
|
self.repository.put(b'00000000000000000000000000000000', b'foo')
|
|
|
self.repository.commit()
|
|
|
# append only: does not compact, only new segments written
|
|
|
- assert segments_in_repository() == 2
|
|
|
+ assert segments_in_repository() == 6
|
|
|
|
|
|
|
|
|
class RepositoryCheckTestCase(RepositoryTestCaseBase):
|
|
@@ -296,20 +296,20 @@ class RepositoryCheckTestCase(RepositoryTestCaseBase):
|
|
|
self.add_objects([[1, 2, 3], [4, 5, 6]])
|
|
|
self.assert_equal(set([1, 2, 3, 4, 5, 6]), self.list_objects())
|
|
|
self.check(status=True)
|
|
|
- self.delete_segment(1)
|
|
|
+ self.delete_segment(2)
|
|
|
self.repository.rollback()
|
|
|
self.check(repair=True, status=True)
|
|
|
self.assert_equal(set([1, 2, 3]), self.list_objects())
|
|
|
|
|
|
def test_repair_missing_commit_segment(self):
|
|
|
self.add_objects([[1, 2, 3], [4, 5, 6]])
|
|
|
- self.delete_segment(1)
|
|
|
+ self.delete_segment(3)
|
|
|
self.assert_raises(Repository.ObjectNotFound, lambda: self.get_objects(4))
|
|
|
self.assert_equal(set([1, 2, 3]), self.list_objects())
|
|
|
|
|
|
def test_repair_corrupted_commit_segment(self):
|
|
|
self.add_objects([[1, 2, 3], [4, 5, 6]])
|
|
|
- with open(os.path.join(self.tmppath, 'repository', 'data', '0', '1'), 'r+b') as fd:
|
|
|
+ with open(os.path.join(self.tmppath, 'repository', 'data', '0', '3'), 'r+b') as fd:
|
|
|
fd.seek(-1, os.SEEK_END)
|
|
|
fd.write(b'X')
|
|
|
self.assert_raises(Repository.ObjectNotFound, lambda: self.get_objects(4))
|
|
@@ -319,15 +319,15 @@ class RepositoryCheckTestCase(RepositoryTestCaseBase):
|
|
|
|
|
|
def test_repair_no_commits(self):
|
|
|
self.add_objects([[1, 2, 3]])
|
|
|
- with open(os.path.join(self.tmppath, 'repository', 'data', '0', '0'), 'r+b') as fd:
|
|
|
+ with open(os.path.join(self.tmppath, 'repository', 'data', '0', '1'), 'r+b') as fd:
|
|
|
fd.seek(-1, os.SEEK_END)
|
|
|
fd.write(b'X')
|
|
|
self.assert_raises(Repository.CheckNeeded, lambda: self.get_objects(4))
|
|
|
self.check(status=False)
|
|
|
self.check(status=False)
|
|
|
- self.assert_equal(self.list_indices(), ['index.0'])
|
|
|
- self.check(repair=True, status=True)
|
|
|
self.assert_equal(self.list_indices(), ['index.1'])
|
|
|
+ self.check(repair=True, status=True)
|
|
|
+ self.assert_equal(self.list_indices(), ['index.3'])
|
|
|
self.check(status=True)
|
|
|
self.get_objects(3)
|
|
|
self.assert_equal(set([1, 2, 3]), self.list_objects())
|
|
@@ -341,10 +341,10 @@ class RepositoryCheckTestCase(RepositoryTestCaseBase):
|
|
|
|
|
|
def test_repair_index_too_new(self):
|
|
|
self.add_objects([[1, 2, 3], [4, 5, 6]])
|
|
|
- self.assert_equal(self.list_indices(), ['index.1'])
|
|
|
+ self.assert_equal(self.list_indices(), ['index.3'])
|
|
|
self.rename_index('index.100')
|
|
|
self.check(status=True)
|
|
|
- self.assert_equal(self.list_indices(), ['index.1'])
|
|
|
+ self.assert_equal(self.list_indices(), ['index.3'])
|
|
|
self.get_objects(4)
|
|
|
self.assert_equal(set([1, 2, 3, 4, 5, 6]), self.list_objects())
|
|
|
|