summaryrefslogtreecommitdiff
path: root/coverage/backunittest.py
diff options
context:
space:
mode:
authorDanny Allen <me@dannya.com>2014-09-22 12:05:55 +0100
committerDanny Allen <me@dannya.com>2014-09-22 12:05:55 +0100
commit1b6d0d06624170fb7a17738387387b1f21357e94 (patch)
tree335402fdef527656f37d3024345c9b532592bce7 /coverage/backunittest.py
parentc4935999f882e7317121e884629d07080f1bc776 (diff)
parentd68b95f7a0a201b2e8e830b6d4769005ef0223fa (diff)
downloadpython-coveragepy-git-1b6d0d06624170fb7a17738387387b1f21357e94.tar.gz
Merged ned/coveragepy into default
Diffstat (limited to 'coverage/backunittest.py')
-rw-r--r--coverage/backunittest.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/coverage/backunittest.py b/coverage/backunittest.py
new file mode 100644
index 00000000..b2b7ca2f
--- /dev/null
+++ b/coverage/backunittest.py
@@ -0,0 +1,36 @@
+"""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'):
+ 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)