diff options
author | Danny Allen <me@dannya.com> | 2014-09-22 12:05:55 +0100 |
---|---|---|
committer | Danny Allen <me@dannya.com> | 2014-09-22 12:05:55 +0100 |
commit | 1b6d0d06624170fb7a17738387387b1f21357e94 (patch) | |
tree | 335402fdef527656f37d3024345c9b532592bce7 /coverage/backunittest.py | |
parent | c4935999f882e7317121e884629d07080f1bc776 (diff) | |
parent | d68b95f7a0a201b2e8e830b6d4769005ef0223fa (diff) | |
download | python-coveragepy-git-1b6d0d06624170fb7a17738387387b1f21357e94.tar.gz |
Merged ned/coveragepy into default
Diffstat (limited to 'coverage/backunittest.py')
-rw-r--r-- | coverage/backunittest.py | 36 |
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) |