diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-05-24 13:38:16 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-05-24 13:38:16 +0200 |
commit | 44f4c089bff7ed1fafe0be0458c2cac2bf2ae308 (patch) | |
tree | 7c023a903b7642e32f80459bbdb8d39e0a045d01 | |
parent | 051b0ba5e525c2846dc960563e014747ada31a60 (diff) | |
download | obnam-44f4c089bff7ed1fafe0be0458c2cac2bf2ae308.tar.gz |
Fix tests to handle split put_chunk
-rw-r--r-- | obnamlib/repo_tests.py | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/obnamlib/repo_tests.py b/obnamlib/repo_tests.py index 648be16b..05263555 100644 --- a/obnamlib/repo_tests.py +++ b/obnamlib/repo_tests.py @@ -432,32 +432,44 @@ class RepositoryClientTests(unittest.TestCase): self.assertEqual(self.repo.list_generations(), []) def test_removing_only_second_generation_works(self): + # Create first generation. It will be empty. self.repo.lock_client('client_name') self.repo.lock_shared() gen1 = self.repo.start_generation() self.repo.commit_client() self.repo.commit_shared() + # Create second generation. It will have a file with two chunks. + # Only one of the chunks will be put into the shared trees. self.repo.lock_client('client_name') self.repo.lock_shared() gen2 = self.repo.start_generation() - chunk_id = self.repo.put_chunk('data', self.repo.checksum('data')) - self.repo.set_file_chunks('/foo', [chunk_id]) + chunk_id1 = self.repo.put_chunk_only('data') + self.repo.put_chunk_in_shared_trees(chunk_id1, 'checksum') + chunk_id2 = self.repo.put_chunk_only('data2') + self.repo.set_file_chunks('/foo', [chunk_id1, chunk_id2]) self.repo.commit_client() self.repo.commit_shared() + # Do we have the right generations? And the chunk2? self.repo.open_client('client_name') self.assertEqual(len(self.repo.list_generations()), 2) + self.assertTrue(self.repo.chunk_exists(chunk_id1)) + self.assertTrue(self.repo.chunk_exists(chunk_id2)) + # Remove second generation. This should remove the chunk too. self.repo.lock_client('client_name') self.repo.lock_shared() self.repo.remove_generation(gen2) self.repo.commit_client() self.repo.commit_shared() + # Make sure we have only the first generation, and that the + # chunks are gone. self.repo.open_client('client_name') self.assertEqual(self.repo.list_generations(), [gen1]) - self.assertFalse(self.repo.chunk_exists(chunk_id)) + self.assertFalse(self.repo.chunk_exists(chunk_id1)) + self.assertFalse(self.repo.chunk_exists(chunk_id2)) def test_removing_started_generation_fails(self): self.repo.lock_client('client_name') @@ -591,11 +603,11 @@ class RepositoryChunkTests(unittest.TestCase): def test_put_chunk_returns_id(self): self.repo.lock_shared() - self.assertNotEqual(self.repo.put_chunk('data', 'checksum'), None) + self.assertNotEqual(self.repo.put_chunk_only('data'), None) def test_get_chunk_retrieves_what_put_chunk_puts(self): self.repo.lock_shared() - chunkid = self.repo.put_chunk('data', 'checksum') + chunkid = self.repo.put_chunk_only('data') self.assertEqual(self.repo.get_chunk(chunkid), 'data') def test_chunk_does_not_exist(self): @@ -603,12 +615,12 @@ class RepositoryChunkTests(unittest.TestCase): def test_chunk_exists_after_it_is_put(self): self.repo.lock_shared() - chunkid = self.repo.put_chunk('chunk', 'checksum') + chunkid = self.repo.put_chunk_only('chunk') self.assert_(self.repo.chunk_exists(chunkid)) def test_removes_chunk(self): self.repo.lock_shared() - chunkid = self.repo.put_chunk('chunk', 'checksum') + chunkid = self.repo.put_chunk_only('chunk') self.repo.remove_chunk(chunkid) self.assertFalse(self.repo.chunk_exists(chunkid)) @@ -619,7 +631,8 @@ class RepositoryChunkTests(unittest.TestCase): def test_find_chunks_finds_what_put_chunk_puts(self): self.repo.lock_shared() checksum = self.repo.checksum('data') - chunkid = self.repo.put_chunk('data', checksum) + chunkid = self.repo.put_chunk_only('data') + self.repo.put_chunk_in_shared_trees(chunkid, checksum) self.assertEqual(self.repo.find_chunks(checksum), [chunkid]) def test_find_chunks_finds_nothing_if_nothing_is_put(self): @@ -628,8 +641,10 @@ class RepositoryChunkTests(unittest.TestCase): def test_handles_checksum_collision(self): self.repo.lock_shared() checksum = self.repo.checksum('data') - chunkid1 = self.repo.put_chunk('data', checksum) - chunkid2 = self.repo.put_chunk('data', checksum) + chunkid1 = self.repo.put_chunk_only('data') + chunkid2 = self.repo.put_chunk_only('data') + self.repo.put_chunk_in_shared_trees(chunkid1, checksum) + self.repo.put_chunk_in_shared_trees(chunkid2, checksum) self.assertEqual(set(self.repo.find_chunks(checksum)), set([chunkid1, chunkid2])) @@ -641,7 +656,7 @@ class RepositoryChunkTests(unittest.TestCase): checksum = self.repo.checksum('data') chunkids = [] for i in range(2): - chunkids.append(self.repo.put_chunk('data', checksum)) + chunkids.append(self.repo.put_chunk_only('data')) self.assertEqual(sorted(self.repo.list_chunks()), sorted(chunkids)) |