diff options
-rw-r--r-- | test/coveragetest.py | 8 | ||||
-rw-r--r-- | test/test_testing.py | 26 |
2 files changed, 33 insertions, 1 deletions
diff --git a/test/coveragetest.py b/test/coveragetest.py index b1f4644c..32da6e66 100644 --- a/test/coveragetest.py +++ b/test/coveragetest.py @@ -1,6 +1,6 @@ """Base test case class for coverage testing.""" -import imp, os, random, shutil, sys, tempfile, textwrap, unittest +import imp, os, random, re, shutil, sys, tempfile, textwrap, unittest import coverage from coverage.backward import set, sorted, StringIO # pylint: disable-msg=W0622 @@ -268,3 +268,9 @@ class CoverageTest(unittest.TestCase): def assert_equal_sets(self, s1, s2): """Assert that the two arguments are equal as sets.""" self.assertEqual(set(s1), set(s2)) + + def assert_matches(self, s, regex): + """Assert that `s` matches `regex`.""" + m = re.search(regex, s) + if not m: + raise self.failureException("%r doesn't match %r" % (s, regex)) diff --git a/test/test_testing.py b/test/test_testing.py new file mode 100644 index 00000000..806f087e --- /dev/null +++ b/test/test_testing.py @@ -0,0 +1,26 @@ +"""Tests that our test infrastructure is really working!""" + +import os, sys +sys.path.insert(0, os.path.split(__file__)[0]) # Force relative import for Py3k +from coveragetest import CoverageTest + +class TestingTest(CoverageTest): + """Tests of helper methods on CoverageTest.""" + + def test_assert_equal_sets(self): + self.assert_equal_sets(set(), set()) + self.assert_equal_sets(set([1,2,3]), set([3,1,2])) + self.assertRaises(AssertionError, self.assert_equal_sets, + set([1,2,3]), set() + ) + self.assertRaises(AssertionError, self.assert_equal_sets, + set([1,2,3]), set([4,5,6]) + ) + + def test_assert_matches(self): + self.assert_matches("hello", "hel*o") + self.assert_matches("Oh, hello there!", "hel*o") + self.assertRaises(AssertionError, self.assert_matches, + "hello there", "^hello$" + ) + |