summaryrefslogtreecommitdiffstats
path: root/Lib/unittest
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2010-04-02 22:55:59 (GMT)
committerMichael Foord <fuzzyman@voidspace.org.uk>2010-04-02 22:55:59 (GMT)
commita04c7a0f169caf09b181df05836e4cf175f37dbe (patch)
treea28694f608093b47a974b249cbb9ee22f1522d8f /Lib/unittest
parent25d7976014bdf4a96fa242a3f86ff3ffe5a514eb (diff)
downloadcpython-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.py12
-rw-r--r--Lib/unittest/test/test_assertions.py10
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.