Skip to content

Instantly share code, notes, and snippets.

@alistairncoles
Created January 12, 2017 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alistairncoles/46a67c833d959fcb55cec785c06e20e1 to your computer and use it in GitHub Desktop.
Save alistairncoles/46a67c833d959fcb55cec785c06e20e1 to your computer and use it in GitHub Desktop.
diff --git a/test/unit/obj/test_diskfile.py b/test/unit/obj/test_diskfile.py
index 480bd78..e68daf8 100644
--- a/test/unit/obj/test_diskfile.py
+++ b/test/unit/obj/test_diskfile.py
@@ -3934,24 +3934,31 @@ class DiskFileMixin(BaseDiskFileTestMixin):
self.assertEqual(expected[2], mock_cleanup.call_count)
def test_delete(self):
- for policy in POLICIES:
- if policy.policy_type == EC_POLICY:
- metadata = {'X-Object-Sysmeta-Ec-Frag-Index': '1'}
- fi = 1
- else:
- metadata = {}
- fi = None
- df = self._get_open_disk_file(policy=policy, frag_index=fi,
- extra_metadata=metadata)
-
- ts = Timestamp(time())
- df.delete(ts)
- exp_name = '%s.ts' % ts.internal
- dl = os.listdir(df._datadir)
- self.assertEqual(len(dl), 1)
- self.assertIn(exp_name, set(dl))
- # cleanup before next policy
- os.unlink(os.path.join(df._datadir, exp_name))
+ def do_test(reclaim_age):
+ for policy in POLICIES:
+ if policy.policy_type == EC_POLICY:
+ metadata = {'X-Object-Sysmeta-Ec-Frag-Index': '1'}
+ fi = 1
+ else:
+ metadata = {}
+ fi = None
+ df = self._get_open_disk_file(policy=policy, frag_index=fi,
+ extra_metadata=metadata)
+ if reclaim_age is not None:
+ df.manager.reclaim_age = reclaim_age
+ ts = Timestamp(time())
+ df.delete(ts)
+ exp_name = '%s.ts' % ts.internal
+ dl = os.listdir(df._datadir)
+ self.assertEqual(len(dl), 1)
+ self.assertIn(exp_name, set(dl))
+ # cleanup before next policy
+ os.unlink(os.path.join(df._datadir, exp_name))
+
+ do_test(None)
+ # check we get a tombstone even when reclaim_age is crazy
+ do_test(0)
+
def test_open_deleted(self):
df = self._get_open_disk_file()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment