diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2018-08-19 07:00:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-19 07:00:11 (GMT) |
commit | 77d5781835b6e0a132694ebadc22b1cbdb9913f8 (patch) | |
tree | 4f572a64ee84c9e8afb960e384181f1dd11d5c7f | |
parent | e349bf23584eef20e0d1e1b2989d9b1430f15507 (diff) | |
download | cpython-77d5781835b6e0a132694ebadc22b1cbdb9913f8.zip cpython-77d5781835b6e0a132694ebadc22b1cbdb9913f8.tar.gz cpython-77d5781835b6e0a132694ebadc22b1cbdb9913f8.tar.bz2 |
bpo-34318: Convert deprecation warnings to errors in assertRaises() etc. (GH-8623)
-rw-r--r-- | Lib/unittest/case.py | 9 | ||||
-rw-r--r-- | Lib/unittest/test/test_case.py | 20 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-08-02-14-43-42.bpo-34318.GneiXs.rst | 7 |
3 files changed, 17 insertions, 19 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index c0170d1..1faa6b6 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -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 diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py index 6b34397..baabddd 100644 --- a/Lib/unittest/test/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -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 diff --git a/Misc/NEWS.d/next/Library/2018-08-02-14-43-42.bpo-34318.GneiXs.rst b/Misc/NEWS.d/next/Library/2018-08-02-14-43-42.bpo-34318.GneiXs.rst new file mode 100644 index 0000000..4df4fe3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-08-02-14-43-42.bpo-34318.GneiXs.rst @@ -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. |