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 4ebed8d03b8..02996146b26 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'