Issue 26742: imports in test_warnings changes warnings.filters (original) (raw)


$ ./python -Wd -m test -j0 test_warnings Run tests in parallel using 6 child processes 0:00:01 [1/1] test_warnings (...) Warning -- warnings.filters was modified by test_warnings 1 test altered the execution environment: test_warnings Total duration: 0:00:02

The problem are these two lines in test_warnings/init.py:

py_warnings = support.import_fresh_module('warnings', blocked=['_warnings']) c_warnings = support.import_fresh_module('warnings', fresh=['_warnings'])

Each fresh "import warnings" calls _processoptions(sys.warnoptions) which can change warning filters.

Attached patch saves/restores warnings.filter to fix the resource warning from the test suite.

Note: the warning is not emited if tests are run sequentially (without the -jN option).