[PATCH 45/55] Add replacement addCleanup.

Jelmer Vernooij jelmer at samba.org
Fri Feb 6 12:04:17 MST 2015


Change-Id: Ie85756effde344fc4cc9b693c4a28611ea091677
---
 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 86ec3df..65a727a 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."""
-- 
2.1.4



More information about the samba-technical mailing list