From 9a2935b4dabf590c8765af04c5cb43930480f85e Mon Sep 17 00:00:00 2001 From: Eric Torres Date: Fri, 12 Apr 2019 07:51:08 -0700 Subject: [PATCH] Test all parts of Repository.cleanup() --- tests/test_repository.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/test_repository.py b/tests/test_repository.py index 8ec4121..e468513 100644 --- a/tests/test_repository.py +++ b/tests/test_repository.py @@ -227,6 +227,8 @@ class TestRepositoryCleanup(unittest.TestCase): self.mocked_shutil = self.patched_shutil.start() self.mocked_snapshot = self.patched_snapshot.start() + self.mocked_shutil.rmtree.avoids_symlink_attacks = True + def test_stops_on_non_symlink_resistant(self): self.mocked_shutil.rmtree.avoids_symlink_attacks = False repo = Repository("backup") @@ -236,6 +238,27 @@ class TestRepositoryCleanup(unittest.TestCase): self.mocked_path.return_value.unlink.assert_not_called() self.mocked_shutil.rmtree.assert_not_called() + def test_removes_metadata_by_default(self): + repo = Repository('backup') + + repo.cleanup() + + self.mocked_path.return_value.unlink.assert_called_once() + + def test_removes_snapshots(self): + repo = Repository('backup') + + repo.cleanup(remove_snapshots=True) + + self.mocked_shutil.rmtree.assert_called_once() + + def test_removes_repo_dir(self): + repo = Repository('backup') + + repo.cleanup(remove_repo_dir=True) + + self.mocked_shutil.rmtree.assert_called_once() + def tearDown(self): self.patched_path.stop() self.patched_r_metadata.stop()