-
- Notifications
You must be signed in to change notification settings - Fork 541
Closed
Labels
bug:normalaffects many people or has quite an impactaffects many people or has quite an impacthelp:wantedIssues that have been acknowledged, a solution determined and a PR might likely be accepted.Issues that have been acknowledged, a solution determined and a PR might likely be accepted.
Description
When running tox from within tox in parallel mode, the tox env of the inner tox is changed unlike when running it without parallel mode. This used to work with detox.
Get the latest tox
[totox]$ python3.7 -m venv venv [totox]$ . venv/bin/activate (venv) [totox]$ pip install tox ... Successfully installed filelock-3.0.12 importlib-metadata-0.23 more-itertools-7.2.0 packaging-19.2 pluggy-0.13.0 py-1.8.0 pyparsing-2.4.2 six-1.12.0 toml-0.10.0 tox-3.14.0 virtualenv-16.7.6 zipp-0.6.0 Create an inner project with simple tox.ini
(venv) [totox]$ mkdir inner (venv) [totox]$ cat > inner/tox.ini [tox] envlist = py36,py37,py38 skipsdist = True [testenv] commands = python -c 'import sys; print(sys.version)' (venv) [totox]$ cd inner (venv) [inner]$ tox py36 create: /home/churchyard/tmp/totox/inner/.tox/py36 py36 run-test-pre: PYTHONHASHSEED='3754984691' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] py37 create: /home/churchyard/tmp/totox/inner/.tox/py37 py37 run-test-pre: PYTHONHASHSEED='3754984691' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] py38 create: /home/churchyard/tmp/totox/inner/.tox/py38 py38 run-test-pre: PYTHONHASHSEED='3754984691' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] ____________________________________________________ summary ____________________________________________________ py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :) (venv) [inner]$ cd .. See that invoking the inner dir's tox via subprocess works
(venv) [totox]$ cat > runner.py import os import subprocess import sys os.chdir('inner') cp = subprocess.run(('tox'), stdout=subprocess.PIPE, encoding='utf-8') sys.stdout.write(cp.stdout) assert 'py36' in cp.stdout assert 'py37' in cp.stdout assert 'py38' in cp.stdout $ python runner.py py36 run-test-pre: PYTHONHASHSEED='1574627210' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] py37 run-test-pre: PYTHONHASHSEED='1574627210' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] py38 run-test-pre: PYTHONHASHSEED='1574627210' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] ___________________________________ summary ____________________________________ py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :) Create an outer tox.ini
(venv) [totox]$ cat > tox.ini [tox] envlist = py36,py37,py38 skipsdist = True [testenv] commands = python runner.py (venv) [totox]$ tox py36 run-test-pre: PYTHONHASHSEED='2559423246' py36 run-test: commands[0] | python runner.py py36 recreate: /home/churchyard/tmp/totox/inner/.tox/py36 py36 run-test-pre: PYTHONHASHSEED='3996979208' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] py37 run-test-pre: PYTHONHASHSEED='3996979208' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] py38 run-test-pre: PYTHONHASHSEED='3996979208' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] ___________________________________ summary ____________________________________ py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :) py37 run-test-pre: PYTHONHASHSEED='2559423246' py37 run-test: commands[0] | python runner.py py36 recreate: /home/churchyard/tmp/totox/inner/.tox/py36 py36 run-test-pre: PYTHONHASHSEED='2567171383' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] py37 run-test-pre: PYTHONHASHSEED='2567171383' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] py38 run-test-pre: PYTHONHASHSEED='2567171383' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] ___________________________________ summary ____________________________________ py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :) py38 run-test-pre: PYTHONHASHSEED='2559423246' py38 run-test: commands[0] | python runner.py py36 run-test-pre: PYTHONHASHSEED='3723348688' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] py37 run-test-pre: PYTHONHASHSEED='3723348688' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] py38 recreate: /home/churchyard/tmp/totox/inner/.tox/py38 py38 run-test-pre: PYTHONHASHSEED='3723348688' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] ___________________________________ summary ____________________________________ py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :) ____________________________________________________ summary ____________________________________________________ py36: commands succeeded py37: commands succeeded py38: commands succeeded congratulations :) Run tox in parallel
$ tox -p all ⠸ [3] py36 | py37 | py38ERROR: invocation failed (exit code 1), logfile: /home/churchyard/tmp/totox/.tox/py37/log/py37-5.log =================================================== log start =================================================== py37 run-test-pre: PYTHONHASHSEED='1114882869' py37 run-test: commands[0] | python runner.py py37 run-test-pre: PYTHONHASHSEED='3136963143' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] Traceback (most recent call last): File "runner.py", line 8, in <module> assert 'py36' in cp.stdout AssertionError ERROR: InvocationError for command /home/churchyard/tmp/totox/.tox/py37/bin/python runner.py (exited with code 1) ==================================================== log end ==================================================== ✖ FAIL py37 in 1.389 seconds ⠴ [2] py36 | py38ERROR: invocation failed (exit code 1), logfile: /home/churchyard/tmp/totox/.tox/py38/log/py38-5.log =================================================== log start =================================================== py38 run-test-pre: PYTHONHASHSEED='3502501543' py38 run-test: commands[0] | python runner.py py38 run-test-pre: PYTHONHASHSEED='1953872060' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] Traceback (most recent call last): File "runner.py", line 8, in <module> assert 'py36' in cp.stdout AssertionError ERROR: InvocationError for command /home/churchyard/tmp/totox/.tox/py38/bin/python runner.py (exited with code 1) ==================================================== log end ==================================================== ✖ FAIL py38 in 1.536 seconds ⠇ [1] py36ERROR: invocation failed (exit code 1), logfile: /home/churchyard/tmp/totox/.tox/py36/log/py36-5.log =================================================== log start =================================================== py36 run-test-pre: PYTHONHASHSEED='664963699' py36 run-test: commands[0] | python runner.py py36 recreate: /home/churchyard/tmp/totox/inner/.tox/py36 py36 run-test-pre: PYTHONHASHSEED='4138548204' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] Traceback (most recent call last): File "runner.py", line 9, in <module> assert 'py37' in cp.stdout AssertionError ERROR: InvocationError for command /home/churchyard/tmp/totox/.tox/py36/bin/python runner.py (exited with code 1) ==================================================== log end ==================================================== ✖ FAIL py36 in 4.851 seconds ____________________________________________________ summary ____________________________________________________ ERROR: py36: parallel child exit code 1 ERROR: py37: parallel child exit code 1 ERROR: py38: parallel child exit code 1 $ tox -p all -rvv using tox.ini: /home/churchyard/tmp/totox/tox.ini (pid 3993) removing /home/churchyard/tmp/totox/.tox/log using tox-3.14.0 from /home/churchyard/tmp/totox/venv/lib64/python3.7/site-packages/tox/__init__.py (pid 3993) skipping sdist step ⠋ [0] py36 start: parallel py36 py37 start: parallel py37 py38 start: parallel py38 [4001] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/venv/bin/python3.7 venv/lib64/python3.7/site-packages/tox/__main__.py -p all -rvv >.tox/py36/log/py36-7.log [4002] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/venv/bin/python3.7 venv/lib64/python3.7/site-packages/tox/__main__.py -p all -rvv >.tox/py38/log/py38-7.log [4003] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/venv/bin/python3.7 venv/lib64/python3.7/site-packages/tox/__main__.py -p all -rvv >.tox/py37/log/py37-7.log ⠋ [3] py36 | py37 | py38ERROR: invocation failed (exit code 1), logfile: /home/churchyard/tmp/totox/.tox/py37/log/py37-7.log =================================================== log start =================================================== using tox.ini: /home/churchyard/tmp/totox/tox.ini (pid 4003) using tox-3.14.0 from /home/churchyard/tmp/totox/venv/lib64/python3.7/site-packages/tox/__init__.py (pid 4003) skipping sdist step py37 start: getenv /home/churchyard/tmp/totox/.tox/py37 py37 cannot reuse: -r flag py37 recreate: /home/churchyard/tmp/totox/.tox/py37 py37 uses /home/churchyard/tmp/totox/venv/bin/python3.7 setting PATH=/home/churchyard/tmp/totox/.tox/py37/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4019] /home/churchyard/tmp/totox/.tox$ /home/churchyard/tmp/totox/venv/bin/python3.7 -m virtualenv --no-download --python /home/churchyard/tmp/totox/venv/bin/python3.7 py37 Already using interpreter /home/churchyard/tmp/totox/venv/bin/python3.7 Using base prefix '/usr' No LICENSE.txt / LICENSE found in source New python executable in /home/churchyard/tmp/totox/.tox/py37/bin/python3.7 Also creating executable in /home/churchyard/tmp/totox/.tox/py37/bin/python Installing setuptools, pip, wheel... done. py37 finish: getenv /home/churchyard/tmp/totox/.tox/py37 after 3.55 seconds py37 start: finishvenv write config to /home/churchyard/tmp/totox/.tox/py37/.tox-config1 as 'eaaae8efa6683818b83c05b3c7e4e9d1cffb0a05f2771eb7feb68e936cc43729 /home/churchyard/tmp/totox/venv/bin/python3.7\n3.14.0 0 0 0' py37 finish: finishvenv after 0.00 seconds py37 start: envreport setting PATH=/home/churchyard/tmp/totox/.tox/py37/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4045] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/.tox/py37/bin/python -m pip freeze >.tox/py37/log/py37-8.log py37 finish: envreport after 0.30 seconds py37 installed: py37 start: run-test-pre py37 run-test-pre: PYTHONHASHSEED='854761255' py37 finish: run-test-pre after 0.00 seconds py37 start: run-test py37 run-test: commands[0] | python runner.py setting PATH=/home/churchyard/tmp/totox/.tox/py37/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4048] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/.tox/py37/bin/python runner.py py37 run-test-pre: PYTHONHASHSEED='1588756240' py37 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] Traceback (most recent call last): File "runner.py", line 8, in <module> assert 'py36' in cp.stdout AssertionError ERROR: InvocationError for command /home/churchyard/tmp/totox/.tox/py37/bin/python runner.py (exited with code 1) py37 finish: run-test after 0.87 seconds py37 start: run-test-post py37 finish: run-test-post after 0.00 seconds ==================================================== log end ==================================================== ✖ FAIL py37 in 5.028 seconds ⠙ [2] py36 | py38ERROR: invocation failed (exit code 1), logfile: /home/churchyard/tmp/totox/.tox/py36/log/py36-7.log =================================================== log start =================================================== using tox.ini: /home/churchyard/tmp/totox/tox.ini (pid 4001) using tox-3.14.0 from /home/churchyard/tmp/totox/venv/lib64/python3.7/site-packages/tox/__init__.py (pid 4001) skipping sdist step py36 start: getenv /home/churchyard/tmp/totox/.tox/py36 py36 cannot reuse: -r flag py36 recreate: /home/churchyard/tmp/totox/.tox/py36 python3.6 (/usr/bin/python3.6) is {'executable': '/usr/bin/python3.6', 'name': 'python', 'version_info': [3, 6, 9, 'final', 0], 'version': '3.6.9 (default, Jul 3 2019, 15:08:07) \n[GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]', 'is_64': True, 'sysplatform': 'linux'} py36 uses /usr/bin/python3.6 setting PATH=/home/churchyard/tmp/totox/.tox/py36/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4021] /home/churchyard/tmp/totox/.tox$ /home/churchyard/tmp/totox/venv/bin/python3.7 -m virtualenv --no-download --python /usr/bin/python3.6 py36 Already using interpreter /usr/bin/python3.6 Using base prefix '/usr' No LICENSE.txt / LICENSE found in source New python executable in /home/churchyard/tmp/totox/.tox/py36/bin/python3.6 Also creating executable in /home/churchyard/tmp/totox/.tox/py36/bin/python Installing setuptools, pip, wheel... done. Running virtualenv with interpreter /usr/bin/python3.6 py36 finish: getenv /home/churchyard/tmp/totox/.tox/py36 after 3.75 seconds py36 start: finishvenv write config to /home/churchyard/tmp/totox/.tox/py36/.tox-config1 as 'efad2735c97af92da744518585e8e7cca18026980c32955634a56ba3ea1b61e0 /usr/bin/python3.6\n3.14.0 0 0 0' py36 finish: finishvenv after 0.00 seconds py36 start: envreport setting PATH=/home/churchyard/tmp/totox/.tox/py36/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4047] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/.tox/py36/bin/python -m pip freeze >.tox/py36/log/py36-8.log py36 finish: envreport after 0.36 seconds py36 installed: py36 start: run-test-pre py36 run-test-pre: PYTHONHASHSEED='1851229867' py36 finish: run-test-pre after 0.00 seconds py36 start: run-test py36 run-test: commands[0] | python runner.py setting PATH=/home/churchyard/tmp/totox/.tox/py36/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4058] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/.tox/py36/bin/python runner.py py36 run-test-pre: PYTHONHASHSEED='4221253215' py36 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.6.9 (default, Jul 3 2019, 15:08:07) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] Traceback (most recent call last): File "runner.py", line 9, in <module> assert 'py37' in cp.stdout AssertionError ERROR: InvocationError for command /home/churchyard/tmp/totox/.tox/py36/bin/python runner.py (exited with code 1) py36 finish: run-test after 0.74 seconds py36 start: run-test-post py36 finish: run-test-post after 0.00 seconds ==================================================== log end ==================================================== ✖ FAIL py36 in 5.155 seconds ⠹ [1] py38ERROR: invocation failed (exit code 1), logfile: /home/churchyard/tmp/totox/.tox/py38/log/py38-7.log =================================================== log start =================================================== using tox.ini: /home/churchyard/tmp/totox/tox.ini (pid 4002) using tox-3.14.0 from /home/churchyard/tmp/totox/venv/lib64/python3.7/site-packages/tox/__init__.py (pid 4002) skipping sdist step py38 start: getenv /home/churchyard/tmp/totox/.tox/py38 py38 cannot reuse: -r flag py38 recreate: /home/churchyard/tmp/totox/.tox/py38 python3.8 (/usr/bin/python3.8) is {'executable': '/usr/bin/python3.8', 'name': 'python', 'version_info': [3, 8, 0, 'final', 0], 'version': '3.8.0 (default, Oct 16 2019, 12:47:36) \n[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]', 'is_64': True, 'sysplatform': 'linux'} py38 uses /usr/bin/python3.8 setting PATH=/home/churchyard/tmp/totox/.tox/py38/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4020] /home/churchyard/tmp/totox/.tox$ /home/churchyard/tmp/totox/venv/bin/python3.7 -m virtualenv --no-download --python /usr/bin/python3.8 py38 Already using interpreter /usr/bin/python3.8 Using base prefix '/usr' New python executable in /home/churchyard/tmp/totox/.tox/py38/bin/python3.8 Also creating executable in /home/churchyard/tmp/totox/.tox/py38/bin/python Installing setuptools, pip, wheel... done. Running virtualenv with interpreter /usr/bin/python3.8 py38 finish: getenv /home/churchyard/tmp/totox/.tox/py38 after 4.01 seconds py38 start: finishvenv write config to /home/churchyard/tmp/totox/.tox/py38/.tox-config1 as '2c1177eb2a9d75d83e4056f856ef5a366e6aa88c1b679c3e880aa7f27a83035d /usr/bin/python3.8\n3.14.0 0 0 0' py38 finish: finishvenv after 0.00 seconds py38 start: envreport setting PATH=/home/churchyard/tmp/totox/.tox/py38/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4051] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/.tox/py38/bin/python -m pip freeze >.tox/py38/log/py38-8.log py38 finish: envreport after 0.28 seconds py38 installed: py38 start: run-test-pre py38 run-test-pre: PYTHONHASHSEED='3191648311' py38 finish: run-test-pre after 0.00 seconds py38 start: run-test py38 run-test: commands[0] | python runner.py setting PATH=/home/churchyard/tmp/totox/.tox/py38/bin:/home/churchyard/tmp/totox/venv/bin:/usr/libexec/python3-sphinx:/home/churchyard/.local/bin:/home/churchyard/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin [4060] /home/churchyard/tmp/totox$ /home/churchyard/tmp/totox/.tox/py38/bin/python runner.py py38 run-test-pre: PYTHONHASHSEED='2337141942' py38 run-test: commands[0] | python -c 'import sys; print(sys.version)' 3.8.0 (default, Oct 16 2019, 12:47:36) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] Traceback (most recent call last): File "runner.py", line 8, in <module> assert 'py36' in cp.stdout AssertionError ERROR: InvocationError for command /home/churchyard/tmp/totox/.tox/py38/bin/python runner.py (exited with code 1) py38 finish: run-test after 0.71 seconds py38 start: run-test-post py38 finish: run-test-post after 0.00 seconds ==================================================== log end ==================================================== ✖ FAIL py38 in 5.287 seconds ____________________________________________________ summary ____________________________________________________ ERROR: py36: parallel child exit code 1 ERROR: py37: parallel child exit code 1 ERROR: py38: parallel child exit code 1 Metadata
Metadata
Assignees
Labels
bug:normalaffects many people or has quite an impactaffects many people or has quite an impacthelp:wantedIssues that have been acknowledged, a solution determined and a PR might likely be accepted.Issues that have been acknowledged, a solution determined and a PR might likely be accepted.