Let tox run fail when all envs are skipped#2206
Merged
gaborbernat merged 1 commit intotox-dev:rewritefrom Sep 10, 2021
Merged
Conversation
Codecov Report
@@ Coverage Diff @@
## rewrite #2206 +/- ##
========================================
Coverage 99.85% 99.85%
========================================
Files 157 157
Lines 8997 8999 +2
Branches 942 942
========================================
+ Hits 8984 8986 +2
Misses 3 3
Partials 10 10
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
gaborbernat
requested changes
Sep 9, 2021
Member
Author
|
@gaborbernat Thanks for the review! |
gaborbernat
approved these changes
Sep 10, 2021
adamchainz
added a commit
to adamchainz/tox-py
that referenced
this pull request
Jan 10, 2022
This never properly worked. After discussion, tox added support for my use case with --skip-missing-interpreters: tox-dev/tox#2206
This was referenced Jan 6, 2023
stephenfin
added a commit
to stephenfin/tox
that referenced
this pull request
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
stephenfin
added a commit
to stephenfin/tox
that referenced
this pull request
Jan 6, 2023
This behavior change was introduced in tox-dev#2206 and fixed tox-dev#2195. Call it out in the upgrade docs. Signed-off-by: Stephen Finucane <stephen@that.guru>
stephenfin
added a commit
to stephenfin/tox
that referenced
this pull request
Jan 6, 2023
In tox-dev#2206, we said that tox should fail if all envs are skipped. This is broken when only a single env runs. We print an error message but return 0. Correct this behavior. Signed-off-by: Stephen Finucane <stephen@that.guru> Closes: tox-dev#2827
stephenfin
added a commit
to stephenfin/tox
that referenced
this pull request
Jan 6, 2023
This behavior change was introduced in tox-dev#2206 and fixed tox-dev#2195. Call it out in the upgrade docs. Signed-off-by: Stephen Finucane <stephen@that.guru>
stephenfin
added a commit
to stephenfin/tox
that referenced
this pull request
Jan 6, 2023
In tox-dev#2206, we said that tox should fail if all envs are skipped. This is broken when only a single env runs. We print an error message but return 0. Correct this behavior. Signed-off-by: Stephen Finucane <stephen@that.guru> Closes: tox-dev#2827
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fixes #2195
in message body