classification
Title: test___all__ and test_distutils alters the enviroinment: pkg_resources.PEP440Warning
Type: Stage: patch review
Components: Distutils, Tests Versions: Python 3.9, Python 3.8, Python 3.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: dstufft, eric.araujo, vstinner
Priority: normal Keywords: patch

Created on 2020-03-24 16:51 by vstinner, last changed 2020-03-24 16:55 by vstinner.

Pull Requests
URL Status Linked Edit
PR 19139 open vstinner, 2020-03-24 16:55
Messages (2)
msg364941 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-03-24 16:51
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.
msg364942 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-03-24 16:52
> pkg_resources comes from python3-setuptools-41.6.0-1.fc31.noarch package.

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)
History
Date User Action Args
2020-03-24 16:55:44vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request18500
2020-03-24 16:52:18vstinnersetmessages: + msg364942
2020-03-24 16:51:30vstinnercreate