mirror of
https://github.com/python/cpython.git
synced 2024-11-24 10:24:35 +08:00
bpo-34318: Convert deprecation warnings to errors in assertRaises() etc. (GH-8623)
This commit is contained in:
parent
e349bf2358
commit
77d5781835
@ -157,16 +157,11 @@ class _AssertRaisesBaseContext(_BaseTestCaseContext):
|
||||
if not _is_subtype(self.expected, self._base_type):
|
||||
raise TypeError('%s() arg 1 must be %s' %
|
||||
(name, self._base_type_str))
|
||||
if args and args[0] is None:
|
||||
warnings.warn("callable is None",
|
||||
DeprecationWarning, 3)
|
||||
args = ()
|
||||
if not args:
|
||||
self.msg = kwargs.pop('msg', None)
|
||||
if kwargs:
|
||||
warnings.warn('%r is an invalid keyword argument for '
|
||||
'this function' % next(iter(kwargs)),
|
||||
DeprecationWarning, 3)
|
||||
raise TypeError('%r is an invalid keyword argument for '
|
||||
'this function' % (next(iter(kwargs)),))
|
||||
return self
|
||||
|
||||
callable_obj, *args = args
|
||||
|
@ -1222,7 +1222,7 @@ test case
|
||||
with self.assertRaises(self.failureException):
|
||||
self.assertRaises(ExceptionMock, lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertWarns(DeprecationWarning):
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertRaises(ExceptionMock, None)
|
||||
# Failure when another exception is raised
|
||||
with self.assertRaises(ExceptionMock):
|
||||
@ -1253,8 +1253,7 @@ test case
|
||||
with self.assertRaises(ExceptionMock, msg='foobar'):
|
||||
pass
|
||||
# Invalid keyword argument
|
||||
with self.assertWarnsRegex(DeprecationWarning, 'foobar'), \
|
||||
self.assertRaises(AssertionError):
|
||||
with self.assertRaisesRegex(TypeError, 'foobar'):
|
||||
with self.assertRaises(ExceptionMock, foobar=42):
|
||||
pass
|
||||
# Failure when another exception is raised
|
||||
@ -1295,7 +1294,7 @@ test case
|
||||
|
||||
self.assertRaisesRegex(ExceptionMock, re.compile('expect$'), Stub)
|
||||
self.assertRaisesRegex(ExceptionMock, 'expect$', Stub)
|
||||
with self.assertWarns(DeprecationWarning):
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertRaisesRegex(ExceptionMock, 'expect$', None)
|
||||
|
||||
def testAssertNotRaisesRegex(self):
|
||||
@ -1312,8 +1311,7 @@ test case
|
||||
with self.assertRaisesRegex(Exception, 'expect', msg='foobar'):
|
||||
pass
|
||||
# Invalid keyword argument
|
||||
with self.assertWarnsRegex(DeprecationWarning, 'foobar'), \
|
||||
self.assertRaises(AssertionError):
|
||||
with self.assertRaisesRegex(TypeError, 'foobar'):
|
||||
with self.assertRaisesRegex(Exception, 'expect', foobar=42):
|
||||
pass
|
||||
|
||||
@ -1388,7 +1386,7 @@ test case
|
||||
with self.assertRaises(self.failureException):
|
||||
self.assertWarns(RuntimeWarning, lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertWarns(DeprecationWarning):
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertWarns(RuntimeWarning, None)
|
||||
# Failure when another warning is triggered
|
||||
with warnings.catch_warnings():
|
||||
@ -1433,8 +1431,7 @@ test case
|
||||
with self.assertWarns(RuntimeWarning, msg='foobar'):
|
||||
pass
|
||||
# Invalid keyword argument
|
||||
with self.assertWarnsRegex(DeprecationWarning, 'foobar'), \
|
||||
self.assertRaises(AssertionError):
|
||||
with self.assertRaisesRegex(TypeError, 'foobar'):
|
||||
with self.assertWarns(RuntimeWarning, foobar=42):
|
||||
pass
|
||||
# Failure when another warning is triggered
|
||||
@ -1475,7 +1472,7 @@ test case
|
||||
self.assertWarnsRegex(RuntimeWarning, "o+",
|
||||
lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertWarns(DeprecationWarning):
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertWarnsRegex(RuntimeWarning, "o+", None)
|
||||
# Failure when another warning is triggered
|
||||
with warnings.catch_warnings():
|
||||
@ -1518,8 +1515,7 @@ test case
|
||||
with self.assertWarnsRegex(RuntimeWarning, 'o+', msg='foobar'):
|
||||
pass
|
||||
# Invalid keyword argument
|
||||
with self.assertWarnsRegex(DeprecationWarning, 'foobar'), \
|
||||
self.assertRaises(AssertionError):
|
||||
with self.assertRaisesRegex(TypeError, 'foobar'):
|
||||
with self.assertWarnsRegex(RuntimeWarning, 'o+', foobar=42):
|
||||
pass
|
||||
# Failure when another warning is triggered
|
||||
|
@ -0,0 +1,7 @@
|
||||
:func:`~unittest.TestCase.assertRaises`,
|
||||
:func:`~unittest.TestCase.assertRaisesRegex`,
|
||||
:func:`~unittest.TestCase.assertWarns` and
|
||||
:func:`~unittest.TestCase.assertWarnsRegex` no longer success if the passed
|
||||
callable is None. They no longer ignore unknown keyword arguments in the
|
||||
context manager mode. A DeprecationWarning was raised in these cases
|
||||
since Python 3.5.
|
Loading…
Reference in New Issue
Block a user