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