diff options
author | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-04-02 22:55:59 (GMT) |
---|---|---|
committer | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-04-02 22:55:59 (GMT) |
commit | a04c7a0f169caf09b181df05836e4cf175f37dbe (patch) | |
tree | a28694f608093b47a974b249cbb9ee22f1522d8f /Lib/unittest | |
parent | 25d7976014bdf4a96fa242a3f86ff3ffe5a514eb (diff) | |
download | cpython-a04c7a0f169caf09b181df05836e4cf175f37dbe.zip cpython-a04c7a0f169caf09b181df05836e4cf175f37dbe.tar.gz cpython-a04c7a0f169caf09b181df05836e4cf175f37dbe.tar.bz2 |
Issue #8038: Addition of unittest.TestCase.assertNotRegexpMatches
Diffstat (limited to 'Lib/unittest')
-rw-r--r-- | Lib/unittest/case.py | 12 | ||||
-rw-r--r-- | Lib/unittest/test/test_assertions.py | 10 |
2 files changed, 22 insertions, 0 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index 9891803..cbbe2b5 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -952,6 +952,18 @@ class TestCase(object): msg = '%s: %r not found in %r' % (msg, expected_regexp.pattern, text) raise self.failureException(msg) + def assertNotRegexpMatches(self, text, unexpected_regexp, msg=None): + if isinstance(unexpected_regexp, basestring): + unexpected_regexp = re.compile(unexpected_regexp) + match = unexpected_regexp.search(text) + if match: + msg = msg or "Regexp matched" + msg = '%s: %r matches %r in %r' % (msg, + text[match.start():match.end()], + unexpected_regexp.pattern, + text) + raise self.failureException(msg) + class FunctionTestCase(TestCase): """A test case that wraps a test function. diff --git a/Lib/unittest/test/test_assertions.py b/Lib/unittest/test/test_assertions.py index 5d77ce8..1880059 100644 --- a/Lib/unittest/test/test_assertions.py +++ b/Lib/unittest/test/test_assertions.py @@ -91,6 +91,16 @@ class Test_Assertions(unittest.TestCase): else: self.fail("assertRaises() didn't let exception pass through") + def testAssertNotRegexpMatches(self): + self.assertNotRegexpMatches('Ala ma kota', r'r+') + try: + self.assertNotRegexpMatches('Ala ma kota', r'k.t', 'Message') + except self.failureException, e: + self.assertIn("'kot'", e.args[0]) + self.assertIn('Message', e.args[0]) + else: + self.fail('assertNotRegexpMatches should have failed.') + class TestLongMessage(unittest.TestCase): """Test that the individual asserts honour longMessage. |