Martin Panter added the comment:

Actually, I found a regression. Looks like you also need to cancel any 
showwarning() function set by the user:

>>> import warnings
>>> warnings.showwarning = print
>>> with warnings.catch_warnings(record=True) as recording:
...     warnings.warn("hi")  # Unpatched did not call print()
... 
hi <class 'UserWarning'> __main__ 2 None None
>>> recording  # Unpatched returned the warning here
[]

Also, should the documentation of catch_warnings() be amended to say that there 
is no longer a custom showwarning() function? The recording mechanism is now an 
internal detail, and not accessible by calling showwarning().

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28835>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to