Skip to content

test_venv failure output is inscrutable #93957

Closed
@jaraco

Description

With this Dockerfile, I can confirm the proposed fix in Setuptools has the desired effect:

FROM jaraco/multipy-tox

RUN apt install -y libarchive-tools
RUN apt install -y build-essential gdb lcov pkg-config libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev lzma lzma-dev tk-dev uuid-dev zlib1g-dev
RUN wget -O - https://github.com/python/cpython/archive/refs/heads/3.9.zip | bsdtar -xf -
WORKDIR cpython-3.9
RUN sh ./configure --prefix /opt/python
RUN make install
RUN chmod u+x /opt/python/lib/python3.9/test/ziptestdata/exe_with_*
WORKDIR /
RUN /opt/python/bin/python3 -m pip install --upgrade pip
RUN /opt/python/bin/python3 -m pip install git+https://github.com/pypa/setuptools@bugfix/3383-cpython-sensitive-tests
CMD /opt/python/bin/python3 -m test

...

Unfortunately, it also creates its own regression in test_venv:

$ docker run -it -v /Users/jaraco/p/pypa/setuptools:/src @$(docker build -q .) /opt/python/bin/py
thon3 -m test test_venv
0:00:00 load avg: 0.04 Run tests sequentially
0:00:00 load avg: 0.04 [1/1] test_venv
test test_venv failed -- Traceback (most recent call last):
  File "/opt/python/lib/python3.9/test/test_venv.py", line 544, in test_with_pip
    self.do_test_with_pip(True)
  File "/opt/python/lib/python3.9/test/test_venv.py", line 511, in do_test_with_pip
    out, err = check_output([envpy,
  File "/opt/python/lib/python3.9/test/test_venv.py", line 44, in check_output
    raise subprocess.CalledProcessError(
subprocess.CalledProcessError: Command '['/tmp/tmpqts0cln1/bin/python3', '-W', 'ignore::DeprecationWarning', '-I', '-m', 'ensurepip._uninstall']' returned non-zero exit status 1.

test_venv failed (1 error)

== Tests result: FAILURE ==

1 test failed:
    test_venv

Total duration: 5.7 sec
Tests result: FAILURE

And annoyingly, that error message is all but worthless for diagnosis.

Originally posted by @jaraco in #91169 (comment)

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions