Reverted issue #24134 changes (except new tests).
This commit is contained in:
parent
75fb816c78
commit
a7d00c207f
|
@ -129,17 +129,15 @@ class _BaseTestCaseContext:
|
|||
msg = self.test_case._formatMessage(self.msg, standardMsg)
|
||||
raise self.test_case.failureException(msg)
|
||||
|
||||
def _sentinel(*args, **kwargs):
|
||||
raise AssertionError('Should never be called')
|
||||
|
||||
class _AssertRaisesBaseContext(_BaseTestCaseContext):
|
||||
|
||||
def __init__(self, expected, test_case, callable_obj=_sentinel,
|
||||
def __init__(self, expected, test_case, callable_obj=None,
|
||||
expected_regex=None):
|
||||
_BaseTestCaseContext.__init__(self, test_case)
|
||||
self.expected = expected
|
||||
self.test_case = test_case
|
||||
if callable_obj is not _sentinel:
|
||||
if callable_obj is not None:
|
||||
try:
|
||||
self.obj_name = callable_obj.__name__
|
||||
except AttributeError:
|
||||
|
@ -153,11 +151,11 @@ class _AssertRaisesBaseContext(_BaseTestCaseContext):
|
|||
|
||||
def handle(self, name, callable_obj, args, kwargs):
|
||||
"""
|
||||
If callable_obj is _sentinel, assertRaises/Warns is being used as a
|
||||
If callable_obj is None, assertRaises/Warns is being used as a
|
||||
context manager, so check for a 'msg' kwarg and return self.
|
||||
If callable_obj is not _sentinel, call it passing args and kwargs.
|
||||
If callable_obj is not None, call it passing args and kwargs.
|
||||
"""
|
||||
if callable_obj is _sentinel:
|
||||
if callable_obj is None:
|
||||
self.msg = kwargs.pop('msg', None)
|
||||
return self
|
||||
with self:
|
||||
|
@ -676,7 +674,7 @@ class TestCase(object):
|
|||
except UnicodeDecodeError:
|
||||
return '%s : %s' % (safe_repr(standardMsg), safe_repr(msg))
|
||||
|
||||
def assertRaises(self, excClass, callableObj=_sentinel, *args, **kwargs):
|
||||
def assertRaises(self, excClass, callableObj=None, *args, **kwargs):
|
||||
"""Fail unless an exception of class excClass is raised
|
||||
by callableObj when invoked with arguments args and keyword
|
||||
arguments kwargs. If a different type of exception is
|
||||
|
@ -684,7 +682,7 @@ class TestCase(object):
|
|||
deemed to have suffered an error, exactly as for an
|
||||
unexpected exception.
|
||||
|
||||
If called with callableObj omitted, will return a
|
||||
If called with callableObj omitted or None, will return a
|
||||
context object used like this::
|
||||
|
||||
with self.assertRaises(SomeException):
|
||||
|
@ -705,7 +703,7 @@ class TestCase(object):
|
|||
context = _AssertRaisesContext(excClass, self, callableObj)
|
||||
return context.handle('assertRaises', callableObj, args, kwargs)
|
||||
|
||||
def assertWarns(self, expected_warning, callable_obj=_sentinel, *args, **kwargs):
|
||||
def assertWarns(self, expected_warning, callable_obj=None, *args, **kwargs):
|
||||
"""Fail unless a warning of class warnClass is triggered
|
||||
by callable_obj when invoked with arguments args and keyword
|
||||
arguments kwargs. If a different type of warning is
|
||||
|
@ -713,7 +711,7 @@ class TestCase(object):
|
|||
warning filtering rules in effect, it might be silenced, printed
|
||||
out, or raised as an exception.
|
||||
|
||||
If called with callable_obj omitted, will return a
|
||||
If called with callable_obj omitted or None, will return a
|
||||
context object used like this::
|
||||
|
||||
with self.assertWarns(SomeWarning):
|
||||
|
@ -1221,7 +1219,7 @@ class TestCase(object):
|
|||
self.fail(self._formatMessage(msg, standardMsg))
|
||||
|
||||
def assertRaisesRegex(self, expected_exception, expected_regex,
|
||||
callable_obj=_sentinel, *args, **kwargs):
|
||||
callable_obj=None, *args, **kwargs):
|
||||
"""Asserts that the message in a raised exception matches a regex.
|
||||
|
||||
Args:
|
||||
|
@ -1240,7 +1238,7 @@ class TestCase(object):
|
|||
return context.handle('assertRaisesRegex', callable_obj, args, kwargs)
|
||||
|
||||
def assertWarnsRegex(self, expected_warning, expected_regex,
|
||||
callable_obj=_sentinel, *args, **kwargs):
|
||||
callable_obj=None, *args, **kwargs):
|
||||
"""Asserts that the message in a triggered warning matches a regexp.
|
||||
Basic functioning is similar to assertWarns() with the addition
|
||||
that only warnings whose messages also match the regular expression
|
||||
|
|
|
@ -1147,9 +1147,6 @@ test case
|
|||
# Failure when no exception is raised
|
||||
with self.assertRaises(self.failureException):
|
||||
self.assertRaises(ExceptionMock, lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertRaises(ExceptionMock, None)
|
||||
# Failure when another exception is raised
|
||||
with self.assertRaises(ExceptionMock):
|
||||
self.assertRaises(ValueError, Stub)
|
||||
|
@ -1187,8 +1184,6 @@ test case
|
|||
|
||||
self.assertRaisesRegex(ExceptionMock, re.compile('expect$'), Stub)
|
||||
self.assertRaisesRegex(ExceptionMock, 'expect$', Stub)
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertRaisesRegex(ExceptionMock, 'expect$', None)
|
||||
|
||||
def testAssertNotRaisesRegex(self):
|
||||
self.assertRaisesRegex(
|
||||
|
@ -1256,9 +1251,6 @@ test case
|
|||
# Failure when no warning is triggered
|
||||
with self.assertRaises(self.failureException):
|
||||
self.assertWarns(RuntimeWarning, lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertWarns(RuntimeWarning, None)
|
||||
# Failure when another warning is triggered
|
||||
with warnings.catch_warnings():
|
||||
# Force default filter (in case tests are run with -We)
|
||||
|
@ -1320,9 +1312,6 @@ test case
|
|||
with self.assertRaises(self.failureException):
|
||||
self.assertWarnsRegex(RuntimeWarning, "o+",
|
||||
lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertWarnsRegex(RuntimeWarning, "o+", None)
|
||||
# Failure when another warning is triggered
|
||||
with warnings.catch_warnings():
|
||||
# Force default filter (in case tests are run with -We)
|
||||
|
|
|
@ -48,9 +48,6 @@ Library
|
|||
- Issue #23796: peak and read1 methods of BufferedReader now raise ValueError
|
||||
if they called on a closed object. Patch by John Hergenroeder.
|
||||
|
||||
- Issue #24134: assertRaises(), assertRaisesRegex(), assertWarns() and
|
||||
assertWarnsRegex() checks are not longer successful if the callable is None.
|
||||
|
||||
- Issue #24094: Fix possible crash in json.encode with poorly behaved dict
|
||||
subclasses.
|
||||
|
||||
|
|
Loading…
Reference in New Issue