From: Jan Fajerski Date: Mon, 23 Aug 2021 13:37:57 +0000 (+0200) Subject: snap-schedule: add test for multiple retention set calculation X-Git-Tag: v16.2.7~32^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b5ffd98c4788723d30f67fd00a65dc7e822b2308;p=ceph.git snap-schedule: add test for multiple retention set calculation Signed-off-by: Jan Fajerski (cherry picked from commit bb9a3b358bc7bd031d8a18e299a3a1485aac1cfc) --- diff --git a/src/pybind/mgr/snap_schedule/tests/fs/test_schedule_client.py b/src/pybind/mgr/snap_schedule/tests/fs/test_schedule_client.py index 4ebed8d03b8f..02996146b269 100644 --- a/src/pybind/mgr/snap_schedule/tests/fs/test_schedule_client.py +++ b/src/pybind/mgr/snap_schedule/tests/fs/test_schedule_client.py @@ -18,3 +18,20 @@ class TestScheduleClient(object): prune_set = get_prune_set(candidates, ret) assert prune_set == set(), 'candidates are pruned despite empty retention' + def test_get_prune_set_two_retention_specs(self): + now = datetime.now() + candidates = set() + for i in range(10): + ts = now - timedelta(hours=i*1) + fake_dir = MagicMock() + fake_dir.d_name = f'scheduled-{ts.strftime(SNAPSHOT_TS_FORMAT)}' + candidates.add((fake_dir, ts)) + for i in range(10): + ts = now - timedelta(days=i*1) + fake_dir = MagicMock() + fake_dir.d_name = f'scheduled-{ts.strftime(SNAPSHOT_TS_FORMAT)}' + candidates.add((fake_dir, ts)) + # should keep 8 snapshots + ret = {'h': 6, 'd': 2} + prune_set = get_prune_set(candidates, ret) + assert len(prune_set) == len(candidates) - 8, 'wrong size of prune set'