Fix environments not being reused due to wrong Python lookup #428
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.
Follow-up to #418 and #425
This PR contains two changes to the staleness check when reusing environments:
1. Fix environments not being reused due to wrong Python lookup
When determining the Python base installation of an existing environment, allow
nox.command.run
to find the Python executable in the virtualenv, by passingVirtualEnv.bin_paths
as thepaths
argument.The original PR (#418) passed
os.path.join(self.location, "bin", "python")
. This does not work for two reasons:The follow-up PR (#425) passed bare "python". This does not work, because
nox.command.run
searchesPATH
by default. It needs to be told to search the virtualenv instead.This fix exposed portability flaws in the test suite on Windows. Some tests messed with the
pyvenv.cfg
files, which confused the Windows Python launcher. We solve this by skipping one non-essential test on Windows, and by preserving the originalpyvenv.cfg
keys in another test.2. Don't log interpreter checks when reusing environments
This gets rid of some clutter in the Nox output. Here's an example for such clutter: