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

warn if a command does not come from the venv #2

Closed
pytoxbot opened this Issue Sep 17, 2016 · 10 comments

Comments

Projects
None yet
1 participant
@pytoxbot

pytoxbot commented Sep 17, 2016

If one forgets to specify a dep like "pytest" then the invoking shell's py.test is used and thus the wrong version/wrong interpreter is used.

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @schlamar

@hpk42 Well, the issue is that "nose" doesn't get installed in the first place because it is already in site-packages. And the test run picks the nose version from the PATH which is the wrong Python version.
A solution would be to add the "bin" directory of the current interpreter to the PATH after the "bin" of the venv. Not sure if this a sane solution though...

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @hpk42

i uploaded tox-1.5.dev11 to http://pypi.testrun.org -- it should make sure that commands are first searched in the virtualenv.

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @hpk42

@mitsuhiko i added a whitelist_externals=MULTI_LINE_LIST config variable for testenvs. Just put whitelist_externals=make to not get warnings anymore. or =* to ignore all missing commands. You can install the according tox version via: pip install -i http://pypi.testrun.org -U tox. Let me know if that is enough for your purposes or if you suggest a different config variable name.

@schlamar the wrongly picked up is a different issue. Will see to fix it separately and report back here.

@pytoxbot pytoxbot closed this Sep 17, 2016

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @schlamar

@hpk42 You didn't get the point. The problem is that the py25 environment runs the 2.7 "nosetests" command (because C:\Python27\Scripts is in my PATH) but it should use the 2.5 version. But the 2.5 version doesn't get installed in the tox environment because it is already installed in 2.5 site-packages.

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @mitsuhiko

This is very annoying if you want to use makefiles. Can we have a way to disable this warning?

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @hpk42

Why do you think it's the wrong nosetests version?

The warning seems like correct behaviour because even with despite sitepackages=True tox assumes you only run commands that were installed to the virtualenv. If you want to maintain your setting and want to get rid of the warning tox would need something like a "command_whitelist" configuration which lists commands that should not be considered for warnings. If you want this, please open another issue. I am re-resolving this issue.

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @schlamar

I am testing py25 and py27 with the {{{sitepackages=True}}} option and with dependency nosetests. Nosetest is already installed in both environments. py27 is in my PATH. py25 is running with the wrong nosetests version:

{{{
[TOX] WARNING:test command found but not installed in testenv
cmd: C:\Python27\Scripts\nosetests.EXE
env: D:\testlib.tox\py25
Maybe forgot to specify a dependency?
}}}

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @hpk42

Can you provide a more complete description of the situation including the tox screenlog?

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @schlamar

There is a problem with {{{sitepackages=True}}}, in this case the test dependency does not get installed in the test environment if it is already installed.

Any idea how to solve this?

@pytoxbot

This comment has been minimized.

pytoxbot commented Sep 17, 2016

Original comment by @hpk42

fix issue 2 - warn if a test command does not come from the test environment.
also refine when the configuration of a virtualenv is written so that a subsequent run can compare to it

→ <>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment