3 new commits in tox: https://bitbucket.org/hpk42/tox/commits/5e3344f746e7/ Changeset: 5e3344f746e7 Branch: use-venv191-pip13-for-python25 User: mete0r_kr Date: 2013-08-13 19:32:35 Summary: use inlined virtualenv-1.9.1 and pip<1.4 for CPython 2.5 / Jython 2.5
Since virtualenv 1.10 and pip 1.4 has dropped python 2.5 support, use inlined virtualenv-1.9.1 and Pip<1.4 for CPython 2.5 / Jython 2.5 Affected #: 2 files diff -r 3be5bca16f8b0c4394060b8e0377ef1883c518c7 -r 5e3344f746e7954a06ac56c50cc8ff4359f95576 tests/test_venv.py --- a/tests/test_venv.py +++ b/tests/test_venv.py @@ -4,6 +4,7 @@ import os, sys from tox._venv import VirtualEnv, CreationConfig, getdigest from tox._venv import find_executable +from tox._venv import _getinterpreterversion #def test_global_virtualenv(capfd): # v = VirtualEnv() @@ -80,6 +81,11 @@ py.test.raises(tox.exception.InterpreterNotFound, venv.getsupportedinterpreter) +def test_getinterpreterversion(): + from distutils.sysconfig import get_python_version + version = _getinterpreterversion(sys.executable) + assert version == get_python_version() + def test_create(monkeypatch, mocksession, newconfig): config = newconfig([], """ [testenv:py123] diff -r 3be5bca16f8b0c4394060b8e0377ef1883c518c7 -r 5e3344f746e7954a06ac56c50cc8ff4359f95576 tox/_venv.py --- a/tox/_venv.py +++ b/tox/_venv.py @@ -1,5 +1,7 @@ from __future__ import with_statement import sys, os, re +import textwrap +import subprocess import py import tox from tox._config import DepConfig @@ -180,10 +182,15 @@ if action is None: action = self.session.newaction(self, "create") config_interpreter = self.getsupportedinterpreter() - f, path, _ = py.std.imp.find_module("virtualenv") - f.close() - venvscript = path.rstrip("co") - #venvscript = py.path.local(tox.__file__).dirpath("virtualenv.py") + config_interpreter_version = _getinterpreterversion(config_interpreter) + use_venv191 = config_interpreter_version < '2.6' + use_pip13 = config_interpreter_version < '2.6' + if not use_venv191: + f, path, _ = py.std.imp.find_module("virtualenv") + f.close() + venvscript = path.rstrip("co") + else: + venvscript = py.path.local(tox.__file__).dirpath("virtualenv-1.9.1.py") args = [config_interpreter, venvscript] if self.envconfig.distribute: args.append("--distribute") @@ -204,6 +211,12 @@ args.append(self.path.basename) self._pcall(args, venv=False, action=action, cwd=basepath) self.just_created = True + if use_pip13: + indexserver = self.envconfig.config.indexserver['default'] + action = self.session.newaction(self, "pip_downgrade") + action.setactivity('pip-downgrade', 'pip<1.4') + argv = ["easy_install"] + self._commoninstallopts(indexserver) + ['pip<1.4'] + self._pcall(argv, cwd=self.envconfig.envlogdir, action=action) def finish(self): self._getliveconfig().writeconfig(self.path_config) @@ -366,6 +379,23 @@ self.session.report.verbosity2("setting PATH=%s" % os.environ["PATH"]) return oldPATH +def _getinterpreterversion(executable): + print_python_version = textwrap.dedent(""" + from distutils.sysconfig import get_python_version + print(get_python_version()) + """) + proc = subprocess.Popen([str(executable), '-c', print_python_version], + stdout=subprocess.PIPE) + odata, edata = proc.communicate() + if proc.returncode: + raise tox.exception.UnsupportedInterpreter( + "Error getting python version from %s" % executable) + if sys.version_info[0] == 3: + string = str + else: + string = lambda x, encoding: str(x) + return string(odata, 'ascii').strip() + def getdigest(path): path = py.path.local(path) if not path.check(file=1): https://bitbucket.org/hpk42/tox/commits/42280ff26e8c/ Changeset: 42280ff26e8c Branch: use-venv191-pip13-for-python25 User: mete0r_kr Date: 2013-08-13 22:48:03 Summary: Add missing virtualenv-1.9.1.py and fix to use indexserver.url and remove textwrap usage Affected #: 2 files diff -r 5e3344f746e7954a06ac56c50cc8ff4359f95576 -r 42280ff26e8c7eb31eea06d3b550664bb56407a4 tox/_venv.py --- a/tox/_venv.py +++ b/tox/_venv.py @@ -1,6 +1,5 @@ from __future__ import with_statement import sys, os, re -import textwrap import subprocess import py import tox @@ -212,7 +211,7 @@ self._pcall(args, venv=False, action=action, cwd=basepath) self.just_created = True if use_pip13: - indexserver = self.envconfig.config.indexserver['default'] + indexserver = self.envconfig.config.indexserver['default'].url action = self.session.newaction(self, "pip_downgrade") action.setactivity('pip-downgrade', 'pip<1.4') argv = ["easy_install"] + self._commoninstallopts(indexserver) + ['pip<1.4'] @@ -380,10 +379,9 @@ return oldPATH def _getinterpreterversion(executable): - print_python_version = textwrap.dedent(""" - from distutils.sysconfig import get_python_version - print(get_python_version()) - """) + print_python_version = ( + 'from distutils.sysconfig import get_python_version\n' + 'print(get_python_version())\n') proc = subprocess.Popen([str(executable), '-c', print_python_version], stdout=subprocess.PIPE) odata, edata = proc.communicate() This diff is so big that we needed to truncate the remainder. https://bitbucket.org/hpk42/tox/commits/2f81a12f84bc/ Changeset: 2f81a12f84bc User: hpk42 Date: 2013-08-14 08:05:21 Summary: ref issue91 - use a vendored virtualenv-1.9.1 when creating python-2.5 environments. Merged in mete0r_kr/tox/use-venv191-pip13-for-python25 (pull request #65) use inlined virtualenv-1.9.1 and pip<1.4 for CPython 2.5 / Jython 2.5 (revised) Affected #: 3 files diff -r e4fd16d2b53588a3b65c19dd194797f89bba7f68 -r 2f81a12f84bc87215c4c5862c3555111b5ab1991 tests/test_venv.py --- a/tests/test_venv.py +++ b/tests/test_venv.py @@ -4,6 +4,7 @@ import os, sys from tox._venv import VirtualEnv, CreationConfig, getdigest from tox._venv import find_executable +from tox._venv import _getinterpreterversion #def test_global_virtualenv(capfd): # v = VirtualEnv() @@ -80,6 +81,11 @@ py.test.raises(tox.exception.InterpreterNotFound, venv.getsupportedinterpreter) +def test_getinterpreterversion(): + from distutils.sysconfig import get_python_version + version = _getinterpreterversion(sys.executable) + assert version == get_python_version() + def test_create(monkeypatch, mocksession, newconfig): config = newconfig([], """ [testenv:py123] diff -r e4fd16d2b53588a3b65c19dd194797f89bba7f68 -r 2f81a12f84bc87215c4c5862c3555111b5ab1991 tox/_venv.py --- a/tox/_venv.py +++ b/tox/_venv.py @@ -1,5 +1,6 @@ from __future__ import with_statement import sys, os, re +import subprocess import py import tox from tox._config import DepConfig @@ -180,10 +181,15 @@ if action is None: action = self.session.newaction(self, "create") config_interpreter = self.getsupportedinterpreter() - f, path, _ = py.std.imp.find_module("virtualenv") - f.close() - venvscript = path.rstrip("co") - #venvscript = py.path.local(tox.__file__).dirpath("virtualenv.py") + config_interpreter_version = _getinterpreterversion(config_interpreter) + use_venv191 = config_interpreter_version < '2.6' + use_pip13 = config_interpreter_version < '2.6' + if not use_venv191: + f, path, _ = py.std.imp.find_module("virtualenv") + f.close() + venvscript = path.rstrip("co") + else: + venvscript = py.path.local(tox.__file__).dirpath("virtualenv-1.9.1.py") args = [config_interpreter, venvscript] if self.envconfig.distribute: args.append("--distribute") @@ -204,6 +210,12 @@ args.append(self.path.basename) self._pcall(args, venv=False, action=action, cwd=basepath) self.just_created = True + if use_pip13: + indexserver = self.envconfig.config.indexserver['default'].url + action = self.session.newaction(self, "pip_downgrade") + action.setactivity('pip-downgrade', 'pip<1.4') + argv = ["easy_install"] + self._commoninstallopts(indexserver) + ['pip<1.4'] + self._pcall(argv, cwd=self.envconfig.envlogdir, action=action) def finish(self): self._getliveconfig().writeconfig(self.path_config) @@ -372,6 +384,22 @@ self.session.report.verbosity2("setting PATH=%s" % os.environ["PATH"]) return oldPATH +def _getinterpreterversion(executable): + print_python_version = ( + 'from distutils.sysconfig import get_python_version\n' + 'print(get_python_version())\n') + proc = subprocess.Popen([str(executable), '-c', print_python_version], + stdout=subprocess.PIPE) + odata, edata = proc.communicate() + if proc.returncode: + raise tox.exception.UnsupportedInterpreter( + "Error getting python version from %s" % executable) + if sys.version_info[0] == 3: + string = str + else: + string = lambda x, encoding: str(x) + return string(odata, 'ascii').strip() + def getdigest(path): path = py.path.local(path) if not path.check(file=1): This diff is so big that we needed to truncate the remainder. 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 http://mail.python.org/mailman/listinfo/pytest-commit