You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test___all__ and test_distutils alters the enviroinment: pkg_resources.PEP440Warning #84236
Even when no test is run, test_distutils alters the environment:
$ ./python -m test -v --fail-env-changed test_distutils -m DONTEXISTS
== CPython 3.7.7+ (heads/3.7:1cdc61c767, Mar 24 2020, 17:25:30) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
== Linux-5.5.9-200.fc31.x86_64-x86_64-with-fedora-31-Thirty_One little-endian
== cwd: /home/vstinner/python/3.7/build/test_python_157151
== CPU count: 8
== encodings: locale=UTF-8, FS=utf-8
0:00:00 load avg: 0.37 Run tests sequentially
0:00:00 load avg: 0.37 [1/1] test_distutils
Ran 0 tests in 0.001s
OK
Warning -- warnings.filters was modified by test_distutils
Before: (140048876788832, [], [])
After: (140048876788832, [], [('ignore', None, <class 'pkg_resources.PEP440Warning'>, None, 0)])
test_distutils run no tests
== Tests result: NO TEST RUN ==
1 test run no tests:
test_distutils
Total duration: 655 ms
Tests result: NO TEST RUN
The problem comes from Lib/distutils/tests/test_check.py: "from distutils.command.check import check, HAS_DOCUTILS" imports indirectly the docutils module which imports pkg_resources.
pkg_resources changes warnings filters.
docutils is installed by python3-docutils-0.15.2-1.fc31.noarch package and pkg_resources comes from python3-setuptools-41.6.0-1.fc31.noarch package.
Attached PR disables docutils to avoid side effects of "import docutils" like pkg_resources modifying warnings filters.
Activity
vstinner commentedon Mar 24, 2020
Even when no test is run, test_distutils alters the environment:
$ ./python -m test -v --fail-env-changed test_distutils -m DONTEXISTS == CPython 3.7.7+ (heads/3.7:1cdc61c767, Mar 24 2020, 17:25:30) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] == Linux-5.5.9-200.fc31.x86_64-x86_64-with-fedora-31-Thirty_One little-endian == cwd: /home/vstinner/python/3.7/build/test_python_157151 == CPU count: 8 == encodings: locale=UTF-8, FS=utf-8 0:00:00 load avg: 0.37 Run tests sequentially 0:00:00 load avg: 0.37 [1/1] test_distutilsRan 0 tests in 0.001s
OK
Warning -- warnings.filters was modified by test_distutils
Before: (140048876788832, [], [])
After: (140048876788832, [], [('ignore', None, <class 'pkg_resources.PEP440Warning'>, None, 0)])
test_distutils run no tests
== Tests result: NO TEST RUN ==
1 test run no tests:
test_distutils
Total duration: 655 ms
Tests result: NO TEST RUN
The problem comes from Lib/distutils/tests/test_check.py: "from distutils.command.check import check, HAS_DOCUTILS" imports indirectly the docutils module which imports pkg_resources.
pkg_resources changes warnings filters.
docutils is installed by python3-docutils-0.15.2-1.fc31.noarch package and pkg_resources comes from python3-setuptools-41.6.0-1.fc31.noarch package.
Attached PR disables docutils to avoid side effects of "import docutils" like pkg_resources modifying warnings filters.
vstinner commentedon Mar 24, 2020
Here is the line which alters warnings filters:
$ grep warnings /usr/lib/python3.7/site-packages/pkg_resources/__init__.py (...) warnings.filterwarnings("ignore", category=PEP440Warning, append=True)vstinner commentedon May 15, 2020
New changeset 6e57237 by Victor Stinner in branch 'master':
bpo-40055: test_distutils leaves warnings filters unchanged (GH-20095)
6e57237
miss-islington commentedon May 15, 2020
New changeset 7ef2751 by Miss Islington (bot) in branch '3.7':
bpo-40055: test_distutils leaves warnings filters unchanged (GH-20095)
7ef2751
miss-islington commentedon May 15, 2020
New changeset 4e6545b by Miss Islington (bot) in branch '3.8':
bpo-40055: test_distutils leaves warnings filters unchanged (GH-20095)
4e6545b
gh-95349: Hide a Distutils Warning Filter for test_check_c_globals (G…
pythongh-95349: Hide a Distutils Warning Filter for test_check_c_glob…
gh-95349: Hide a Distutils Warning Filter for test_check_c_globals (G…
pythongh-95349: Hide a Distutils Warning Filter for test_check_c_glob…
gh-95349: Hide a Distutils Warning Filter for test_check_c_globals (G…
pythongh-95349: Hide a Distutils Warning Filter for test_check_c_glob…