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).