]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
snap-schedule: add test for multiple retention set calculation 42893/head
authorJan Fajerski <jfajersk@redhat.com>
Mon, 23 Aug 2021 13:37:57 +0000 (15:37 +0200)
committerJan Fajerski <jfajersk@redhat.com>
Tue, 24 Aug 2021 10:33:51 +0000 (12:33 +0200)
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
src/pybind/mgr/snap_schedule/tests/fs/test_schedule_client.py

index 4ebed8d03b8f8bc458f39db94f975b396d077164..02996146b2698c867659ab01d2c1efd977d89a97 100644 (file)
@@ -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'