diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2014-09-15 21:35:07 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2014-09-15 21:35:07 -0400 |
commit | f5da86062ed852cbe6bcf57cc23b1228f15de922 (patch) | |
tree | 3fa354093088521c2e072e4db5f1f87df966e6e9 /coverage/backunittest.py | |
parent | f0b43b13fa9e1775e8b69ff894372db883965645 (diff) | |
download | python-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.py | 41 |
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) |