mirror of https://github.com/python/cpython
Issue #20362: Honour TestCase.longMessage correctly in assertRegex.
Patch from Ilia Kurenkov.
This commit is contained in:
parent
807404921a
commit
be6caca534
|
@ -1279,8 +1279,10 @@ class TestCase(object):
|
|||
assert expected_regex, "expected_regex must not be empty."
|
||||
expected_regex = re.compile(expected_regex)
|
||||
if not expected_regex.search(text):
|
||||
msg = msg or "Regex didn't match"
|
||||
msg = '%s: %r not found in %r' % (msg, expected_regex.pattern, text)
|
||||
standardMsg = "Regex didn't match: %r not found in %r" % (
|
||||
expected_regex.pattern, text)
|
||||
# _formatMessage ensures the longMessage option is respected
|
||||
msg = self._formatMessage(msg, standardMsg)
|
||||
raise self.failureException(msg)
|
||||
|
||||
def assertNotRegex(self, text, unexpected_regex, msg=None):
|
||||
|
@ -1289,11 +1291,12 @@ class TestCase(object):
|
|||
unexpected_regex = re.compile(unexpected_regex)
|
||||
match = unexpected_regex.search(text)
|
||||
if match:
|
||||
msg = msg or "Regex matched"
|
||||
msg = '%s: %r matches %r in %r' % (msg,
|
||||
text[match.start():match.end()],
|
||||
unexpected_regex.pattern,
|
||||
text)
|
||||
standardMsg = 'Regex matched: %r matches %r in %r' % (
|
||||
text[match.start() : match.end()],
|
||||
unexpected_regex.pattern,
|
||||
text)
|
||||
# _formatMessage ensures the longMessage option is respected
|
||||
msg = self._formatMessage(msg, standardMsg)
|
||||
raise self.failureException(msg)
|
||||
|
||||
|
||||
|
@ -1315,6 +1318,7 @@ class TestCase(object):
|
|||
failIf = _deprecate(assertFalse)
|
||||
assertRaisesRegexp = _deprecate(assertRaisesRegex)
|
||||
assertRegexpMatches = _deprecate(assertRegex)
|
||||
assertNotRegexpMatches = _deprecate(assertNotRegex)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -133,7 +133,6 @@ class Test_Assertions(unittest.TestCase):
|
|||
try:
|
||||
self.assertNotRegex('Ala ma kota', r'k.t', 'Message')
|
||||
except self.failureException as e:
|
||||
self.assertIn("'kot'", e.args[0])
|
||||
self.assertIn('Message', e.args[0])
|
||||
else:
|
||||
self.fail('assertNotRegex should have failed.')
|
||||
|
@ -329,6 +328,20 @@ class TestLongMessage(unittest.TestCase):
|
|||
"^unexpectedly identical: None$",
|
||||
"^unexpectedly identical: None : oops$"])
|
||||
|
||||
def testAssertRegex(self):
|
||||
self.assertMessages('assertRegex', ('foo', 'bar'),
|
||||
["^Regex didn't match:",
|
||||
"^oops$",
|
||||
"^Regex didn't match:",
|
||||
"^Regex didn't match: (.*) : oops$"])
|
||||
|
||||
def testAssertNotRegex(self):
|
||||
self.assertMessages('assertNotRegex', ('foo', 'foo'),
|
||||
["^Regex matched:",
|
||||
"^oops$",
|
||||
"^Regex matched:",
|
||||
"^Regex matched: (.*) : oops$"])
|
||||
|
||||
|
||||
def assertMessagesCM(self, methodName, args, func, errors):
|
||||
"""
|
||||
|
|
|
@ -786,6 +786,7 @@ Andrew Kuchling
|
|||
Dave Kuhlman
|
||||
Jon Kuhn
|
||||
Toshio Kuratomi
|
||||
Ilia Kurenkov
|
||||
Vladimir Kushnir
|
||||
Erno Kuusela
|
||||
Ross Lagerwall
|
||||
|
|
|
@ -17,6 +17,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #20362: Honour TestCase.longMessage correctly in assertRegex.
|
||||
Patch from Ilia Kurenkov.
|
||||
|
||||
- Issue #24847: Removes vcruntime140.dll dependency from Tcl/Tk.
|
||||
|
||||
- Issue #23572: Fixed functools.singledispatch on classes with falsy
|
||||
|
|
Loading…
Reference in New Issue