[Python-Dev] unittest isolation and warnings

Christian Tismer tismer at stackless.com
Sat Nov 18 04:25:35 EST 2017


Thanks a lot!
Good to know.

Ciao -- Chris

On 17.11.17 16:44, Brett Cannon wrote:
> Tests are not isolated from the warnings system, so things will leak
> out. Your best option is to use the context manager in the warnings
> module to temporarily make all warnings raise exceptions and test for
> the exception (I'm at the airport, hence why I don't know the name of
> the context manager; the warnings module docs actually have a sample on
> how best to write tests the involve warnings).
> 
> 
> On Fri, Nov 17, 2017, 01:34 Christian Tismer, <tismer at stackless.com
> <mailto:tismer at stackless.com>> wrote:
> 
>     Hi guys,
> 
>     when writing tests, I suddenly discovered that unittest
>     is not isolated to warnings.
> 
>     Example:
>     One of my tests emits warnings when a certain condition is
>     met. Instead of reporting the error immediately, it uses
>     warnings, and at the end of the test, an error is produced
>     if there were warnings.
> 
>             if hasattr(__main__, "__warningregistry__"):
>                 raise RuntimeError("There are errors, see above.")
> 
>     By chance, I discovered that an error was suddenly triggered without
>     a warning. That must mean the warning existed already from
>     another test as a left-over.
> 
>     My question:
>     Is that known, and is that intended?
>     To what extent are the test cases isolated from each other?
> 
>     I do admit that my usage of warnings is somewhat special.
>     But it is very convenient to report many errors on remote servers.
> 
>     Cheers -- Chris
> 
>     --
>     Christian Tismer             :^)   tismer at stackless.com
>     <mailto:tismer at stackless.com>
>     Software Consulting          :     http://www.stackless.com/
>     Karl-Liebknecht-Str. 121     :     https://github.com/PySide
>     14482 Potsdam                :     GPG key -> 0xFB7BEE0E
>     phone +49 173 24 18 776  fax +49 (30) 700143-0023
> 
>     _______________________________________________
>     Python-Dev mailing list
>     Python-Dev at python.org <mailto:Python-Dev at python.org>
>     https://mail.python.org/mailman/listinfo/python-dev
>     Unsubscribe:
>     https://mail.python.org/mailman/options/python-dev/brett%40python.org
> 


-- 
Christian Tismer             :^)   tismer at stackless.com
Software Consulting          :     http://www.stackless.com/
Karl-Liebknecht-Str. 121     :     https://github.com/PySide
14482 Potsdam                :     GPG key -> 0xFB7BEE0E
phone +49 173 24 18 776  fax +49 (30) 700143-0023

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-dev/attachments/20171118/0c1c5358/attachment.sig>


More information about the Python-Dev mailing list