123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
- # For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
- """Implementations of unittest features from the future."""
- # Use unittest2 if it's available, otherwise unittest. This gives us
- # back-ported features for 2.6.
- try:
- import unittest2 as unittest
- except ImportError:
- import unittest
- def unittest_has(method):
- """Does `unittest.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
- # Many Pythons have this method defined. But PyPy3 has a bug with it
- # somehow (https://bitbucket.org/pypy/pypy/issues/2092), so always use our
- # own implementation that works everywhere, at least for the ways we're
- # calling it.
- def assertCountEqual(self, s1, s2):
- """Assert these have the same elements, regardless of order."""
- self.assertEqual(sorted(s1), sorted(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)
|