cpython: 726308cfe3b5 (original) (raw)

Mercurial > cpython

changeset 105474:726308cfe3b5 3.6

catch_warnings() calls showwarning() if overriden Issue #28089: Fix a regression introduced in warnings.catch_warnings(): call warnings.showwarning() if it was overriden inside the context manager. [#28089]

Victor Stinner victor.stinner@gmail.com
date Tue, 06 Dec 2016 10:53:52 +0100
parents ab66423c3581
children 2bd1717b6e00 150d36dbe3ba
files Lib/test/test_warnings/__init__.py Lib/warnings.py Misc/NEWS
diffstat 3 files changed, 60 insertions(+), 2 deletions(-)[+] [-] Lib/test/test_warnings/__init__.py 45 Lib/warnings.py 14 Misc/NEWS 3

line wrap: on

line diff

--- a/Lib/test/test_warnings/init.py +++ b/Lib/test/test_warnings/init.py @@ -944,6 +944,51 @@ class CatchWarningTests(BaseTest): self.assertTrue(wmod.filters is not orig_filters) self.assertTrue(wmod.filters is orig_filters)

+

+

+

+

+

+

+

+

+

+ def test_check_warnings(self): # Explicit tests for the test.support convenience wrapper wmod = self.module

--- a/Lib/warnings.py +++ b/Lib/warnings.py @@ -447,11 +447,20 @@ class catch_warnings(object): self._module._filters_mutated() self._showwarning = self._module.showwarning self._showwarnmsg = self._module._showwarnmsg

+

+

+

+ return log else: return None @@ -463,6 +472,7 @@ class catch_warnings(object): self._module._filters_mutated() self._module.showwarning = self._showwarning self._module._showwarnmsg = self._showwarnmsg

filters contains a sequence of filter 5-tuples

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -26,6 +26,9 @@ Core and Builtins Library ------- +- Issue #28089: Fix a regression introduced in warnings.catch_warnings():