diff options
author | Oren Milman <orenmn@gmail.com> | 2017-09-11 21:18:09 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-09-11 21:18:09 (GMT) |
commit | 9d984fd2b097c8c29479d1c3eb740995fe1ccb0d (patch) | |
tree | a7d7c86c389662a32c482863d5be1b074a7066af /Lib/test/test_warnings | |
parent | 8239fd704637d7cbf59273883fbe487fc0f568fc (diff) | |
download | cpython-9d984fd2b097c8c29479d1c3eb740995fe1ccb0d.zip cpython-9d984fd2b097c8c29479d1c3eb740995fe1ccb0d.tar.gz cpython-9d984fd2b097c8c29479d1c3eb740995fe1ccb0d.tar.bz2 |
bpo-31416: Fix assertion failures in case of a bad warnings.filters or warnings.defaultaction. (#3496)
Patch by Oren Milman.
Diffstat (limited to 'Lib/test/test_warnings')
-rw-r--r-- | Lib/test/test_warnings/__init__.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_warnings/__init__.py b/Lib/test/test_warnings/__init__.py index 75539cf..2d0c46f 100644 --- a/Lib/test/test_warnings/__init__.py +++ b/Lib/test/test_warnings/__init__.py @@ -805,6 +805,21 @@ class _WarningsTests(BaseTest, unittest.TestCase): with self.assertRaises(TypeError): wmod.warn_explicit('foo', Warning, 'bar', 1, registry=None) + @support.cpython_only + def test_issue31416(self): + # warn_explicit() shouldn't cause an assertion failure in case of a + # bad warnings.filters or warnings.defaultaction. + wmod = self.module + with original_warnings.catch_warnings(module=wmod): + wmod.filters = [(None, None, Warning, None, 0)] + with self.assertRaises(TypeError): + wmod.warn_explicit('foo', Warning, 'bar', 1) + + wmod.filters = [] + with support.swap_attr(wmod, 'defaultaction', None), \ + self.assertRaises(TypeError): + wmod.warn_explicit('foo', Warning, 'bar', 1) + class WarningsDisplayTests(BaseTest): |