1 new commit in tox: https://bitbucket.org/hpk42/tox/commits/73d3b0cabef0/ Changeset: 73d3b0cabef0 User: hpk42 Date: 2016-06-20 14:40:36+00:00 Summary: fix issue66 by introducing using default "python -m pip" and introducing list_dependencies_command. (Ted, Holger) Affected #: 9 files
diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,18 @@ +2.4.0 +----- + +- introduce per-venv list_dependencies_command which defaults + to "python -m pip freeze" to obtain the list of installed packages. + If you need to run python2.6 you need to configure it to + something like "pip freeze". Thanks Ted Shaw, Holger Krekel. + +- fix issue66, issue121: change install_command to use "python -m pip" + by default instead of "pip ..." directly which avoids long shebang + issues. If you need to run python2.6 you need to configure it to + something like "pip install {opts} {packages}". Thanks Ted Shaw, + Holger Krekel. + + 2.3.2 ----- diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 doc/config.txt --- a/doc/config.txt +++ b/doc/config.txt @@ -105,7 +105,20 @@ **default**:: - pip install {opts} {packages} + python -m pip install {opts} {packages} + + +.. confval:: list_dependencies_command + + .. versionadded:: 2.4 + + the ``list_dependencies_command`` setting is used for listing + the packages installed into the virtual environment. + + **default**:: + + python -m pip freeze + .. confval:: ignore_errors=True|False(default) diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 setup.py --- a/setup.py +++ b/setup.py @@ -48,7 +48,7 @@ description='virtualenv-based automation of test activities', long_description=open("README.rst").read(), url='http://tox.testrun.org/', - version='2.3.2', + version='2.4.0.dev1', license='http://opensource.org/licenses/MIT', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], author='holger krekel', diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 tests/test_venv.py --- a/tests/test_venv.py +++ b/tests/test_venv.py @@ -137,8 +137,8 @@ assert len(l) == 2 args = l[-1].args assert l[-1].cwd == venv.envconfig.config.toxinidir - assert "pip" in str(args[0]) - assert args[1] == "install" + assert "pip" in str(args[2]) + assert args[3] == "install" # arg = "--download-cache=" + str(venv.envconfig.downloadcache) # assert arg in args[2:] args = [arg for arg in args if str(arg).endswith("dep1-1.1.zip")] @@ -167,8 +167,8 @@ assert len(l) == 2 args = l[-1].args assert l[-1].cwd == venv.envconfig.config.toxinidir - assert "pip" in str(args[0]) - assert args[1] == "install" + assert "pip" in str(args) + assert args[3] == "install" assert "dep1" in args assert "dep2" in args deps = list(filter(None, [x[1] for x in venv._getliveconfig().deps])) @@ -365,7 +365,7 @@ venv._install(["hello"], action=action) assert len(l) == 1 args = l[0].args - assert 'pip' in str(args[0]) + assert "pip" in [str(x) for x in args] for x in args: assert "--download-cache" not in args, args @@ -597,7 +597,7 @@ venv.run_install_command(packages=["whatever"], action=action) l = mocksession._pcalls assert len(l) == 1 - assert 'pip' in l[0].args[0] + assert 'pip' in l[0].args[2] assert 'install' in l[0].args env = l[0].env assert env is not None diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 tox.ini --- a/tox.ini +++ b/tox.ini @@ -13,6 +13,13 @@ [testenv:py26-bare] deps = commands = tox -h +install_command = pip install {opts} {packages} +list_dependencies_command = pip freeze + +[testenv:py26] +install_command = pip install {opts} {packages} +list_dependencies_command = pip freeze + [testenv:docs] basepython=python diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 tox/__init__.py --- a/tox/__init__.py +++ b/tox/__init__.py @@ -1,5 +1,5 @@ # -__version__ = '2.3.2' +__version__ = '2.4.0.dev1' from .hookspecs import hookspec, hookimpl # noqa diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 tox/_pytestplugin.py --- a/tox/_pytestplugin.py +++ b/tox/_pytestplugin.py @@ -195,6 +195,9 @@ return py.std.subprocess.Popen(argv, stdout=stdout, stderr=stderr, **kw) def run(self, *argv): + if argv[0] == "tox" and sys.version_info[:2] < (2,7): + pytest.skip("can not run tests involving calling tox on python2.6. " + "(and python2.6 is about to be deprecated anyway)") argv = [str(x) for x in argv] assert py.path.local.sysfind(str(argv[0])), argv[0] p1 = self.tmpdir.join("stdout") diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 tox/config.py --- a/tox/config.py +++ b/tox/config.py @@ -181,7 +181,7 @@ class InstallcmdOption: name = "install_command" type = "argv" - default = "pip install {opts} {packages}" + default = "python -m pip install {opts} {packages}" help = "install command for dependencies and package under test." def postprocess(self, testenv_config, value): @@ -518,6 +518,13 @@ help="install package in develop/editable mode") parser.add_testenv_attribute_obj(InstallcmdOption()) + + parser.add_testenv_attribute( + name = "list_dependencies_command", + type = "argv", + default = "python -m pip freeze", + help = "list dependencies for a virtual environment") + parser.add_testenv_attribute_obj(DepOption()) parser.add_testenv_attribute( diff -r 468a859c9e7614d18fab2976829eb58dbf905e37 -r 73d3b0cabef07d45135b61848f86c17ebe3b13f9 tox/session.py --- a/tox/session.py +++ b/tox/session.py @@ -537,8 +537,9 @@ # write out version dependency information action = self.newaction(venv, "envreport") with action: - pip = venv.getcommandpath("pip") - output = venv._pcall([str(pip), "freeze"], + python = venv.getcommandpath("python") + args = venv.envconfig.list_dependencies_command + output = venv._pcall(args, cwd=self.config.toxinidir, action=action) # the output contains a mime-header, skip it Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit