-
-
Notifications
You must be signed in to change notification settings - Fork 504
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Requesting missing interpreter with 'usedevelop = true' results in AttributeError #2826
Comments
5 tasks
stephenfin
added a commit
to stephenfin/tox
that referenced
this issue
Jan 6, 2023
We were correctly raising the Skip or NoInterpreter exceptions upon first access of the 'base_python' property of the 'Python' class, however, subsequent calls would simply return None. This meant we did not trigger our exception flow as expected and resulted in a traceback like so: ❯ tox --skip-missing-interpreter=true -e py33 py33: internal error Traceback (most recent call last): File "/tox/src/tox/session/cmd/run/single.py", line 45, in _evaluate tox_env.setup() File "/tox/src/tox/tox_env/api.py", line 248, in setup self._setup_env() File "/tox/src/tox/tox_env/python/runner.py", line 106, in _setup_env super()._setup_env() File "/tox/src/tox/tox_env/python/api.py", line 186, in _setup_env self.ensure_python_env() File "/tox/src/tox/tox_env/python/api.py", line 190, in ensure_python_env conf = self.python_cache() ^^^^^^^^^^^^^^^^^^^ File "/tox/src/tox/tox_env/python/virtual_env/api.py", line 77, in python_cache base = super().python_cache() ^^^^^^^^^^^^^^^^^^^^^^ File "/tox/src/tox/tox_env/python/api.py", line 228, in python_cache "version_info": list(self.base_python.version_info), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'version_info' py33: FAIL code 2 (0.00 seconds) evaluation failed :( (0.06 seconds) (from an environment without Python 3.3) Correct this so that we also raise these exceptions on subsequent accesses. ❯ tox --skip-missing-interpreter=true -e py33 py33: skipped because could not find python interpreter with spec(s): py33 py33: SKIP (0.00 seconds) evaluation failed :( (0.06 seconds) Note that this fix emphasises a change in behavior in tox 4. With the above configuration, tox 3 would have skipped the environment a reported success. By comparison, tox 4 reports a failure. This behavior change was introduced in tox-dev#2206. A future change will note this in the documentation. Also note that this is still not complete. Running the above command with '--skip-missing-interpreters=false' instead will currently result in an unhandled exception. This is an existing issue that will need to be addressed separately. Signed-off-by: Stephen Finucane <stephen@that.guru> Closes: tox-dev#2826
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Issue
Given the following minimal
tox.ini
:Running with a random
pyXY
factor on a host that doesn't havepythonX.Y
results in anAttributeError
:This was alluded to in #2811 but that issue tracks a separate bug.
Environment
Provide at least:
pip list
of the host Python wheretox
is installed:Output of running tox
Provide the output of
tox -rvv
:(not relevant)
Minimal example
If possible, provide a minimal reproducer for the issue:
(see above)
The text was updated successfully, but these errors were encountered: