From 9a4a7b9d3e91439145e8a54c37da4a84754fe152 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 27 Jan 2015 03:44:10 +0100 Subject: [PATCH] Add replacement addCleanup. Change-Id: Ie85756effde344fc4cc9b693c4a28611ea091677 Signed-off-by: Jelmer Vernooij Reviewed-by: Andrew Bartlett --- python/samba/tests/__init__.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/python/samba/tests/__init__.py b/python/samba/tests/__init__.py index 86ec3dff138..65a727aaf6c 100644 --- a/python/samba/tests/__init__.py +++ b/python/samba/tests/__init__.py @@ -53,6 +53,7 @@ class TestCase(unittest.TestCase): def get_credentials(self): return cmdline_credentials + # These functions didn't exist before Python2.7: if not getattr(unittest.TestCase, "skipTest", None): def skipTest(self, reason): raise SkipTest(reason) @@ -65,6 +66,16 @@ class TestCase(unittest.TestCase): def assertIsNot(self, a, b): self.assertTrue(a is not b) + if not getattr(unittest.TestCase, "addCleanup", None): + def addCleanup(self, fn, *args, **kwargs): + self._cleanups = getattr(self, "_cleanups", []) + [ + (fn, args, kwargs)] + + def tearDown(self): + super(TestCase, self).tearDown() + for (fn, args, kwargs) in reversed(getattr(self, "_cleanups", [])): + fn(*args, **kwargs) + class LdbTestCase(unittest.TestCase): """Trivial test case for running tests against a LDB."""