summaryrefslogtreecommitdiff
path: root/coverage/backunittest.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2014-09-15 21:35:07 -0400
committerNed Batchelder <ned@nedbatchelder.com>2014-09-15 21:35:07 -0400
commitf5da86062ed852cbe6bcf57cc23b1228f15de922 (patch)
tree3fa354093088521c2e072e4db5f1f87df966e6e9 /coverage/backunittest.py
parentf0b43b13fa9e1775e8b69ff894372db883965645 (diff)
downloadpython-coveragepy-git-f5da86062ed852cbe6bcf57cc23b1228f15de922.tar.gz
Move test helpers into the coverage package so others can use them
--HG-- rename : tests/backunittest.py => coverage/backunittest.py
Diffstat (limited to 'coverage/backunittest.py')
-rw-r--r--coverage/backunittest.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/coverage/backunittest.py b/coverage/backunittest.py
new file mode 100644
index 00000000..6498397f
--- /dev/null
+++ b/coverage/backunittest.py
@@ -0,0 +1,41 @@
+"""Implementations of unittest features from the future."""
+
+# Use unittest2 if it's available, otherwise unittest. This gives us
+# backported features for 2.6.
+try:
+ import unittest2 as unittest # pylint: disable=F0401
+except ImportError:
+ import unittest
+
+
+def unittest_has(method):
+ """Does `unitttest.TestCase` have `method` defined?"""
+ return hasattr(unittest.TestCase, method)
+
+
+class TestCase(unittest.TestCase):
+ """Just like unittest.TestCase, but with assert methods added.
+
+ Designed to be compatible with 3.1 unittest. Methods are only defined if
+ `unittest` doesn't have them.
+
+ """
+ # pylint: disable=missing-docstring
+
+ if not unittest_has('assertCountEqual'):
+ if unittest_has('assertSameElements'):
+ def assertCountEqual(self, *args, **kwargs):
+ # pylint: disable=no-member
+ return self.assertSameElements(*args, **kwargs)
+ else:
+ def assertCountEqual(self, s1, s2):
+ """Assert these have the same elements, regardless of order."""
+ self.assertEqual(set(s1), set(s2))
+
+ if not unittest_has('assertRaisesRegex'):
+ def assertRaisesRegex(self, *args, **kwargs):
+ return self.assertRaisesRegexp(*args, **kwargs)
+
+ if not unittest_has('assertRegex'):
+ def assertRegex(self, *args, **kwargs):
+ return self.assertRegexpMatches(*args, **kwargs)