From 77fa2369892b7e45ede9cad18aaa3f0721c96cc3 Mon Sep 17 00:00:00 2001 From: Benoit Pierre Date: Fri, 15 Nov 2019 19:06:26 +0100 Subject: [PATCH] tweak workaround for #1644 Work around buggy pip detection code for "pip.exe install/update pip ...". --- tools/tox_pip.py | 11 ++++++++++- tox.ini | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/tox_pip.py b/tools/tox_pip.py index 1117f99653..5aeca80503 100644 --- a/tools/tox_pip.py +++ b/tools/tox_pip.py @@ -17,12 +17,21 @@ def pip(args): 'pip']) shutil.rmtree(glob(os.path.join(TOX_PIP_DIR, 'pip-*.dist-info'))[0]) # And use that version. + pypath = os.environ.get('PYTHONPATH') + pypath = pypath.split(os.pathsep) if pypath is not None else [] + pypath.insert(0, TOX_PIP_DIR) + os.environ['PYTHONPATH'] = os.pathsep.join(pypath) + # Disable PEP 517 support when using editable installs. for n, a in enumerate(args): if not a.startswith('-'): if a in 'install' and '-e' in args[n:]: args.insert(n + 1, '--no-use-pep517') break - subprocess.check_call([sys.executable, os.path.join(TOX_PIP_DIR, 'pip')] + args) + # Fix call for setuptools editable install. + for n, a in enumerate(args): + if a == '.': + args[n] = os.getcwd() + subprocess.check_call([sys.executable, '-m', 'pip'] + args, cwd=TOX_PIP_DIR) if __name__ == '__main__': diff --git a/tox.ini b/tox.ini index 8b34c235c9..5d439cb34b 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ envlist=python pip = python {toxinidir}/tools/tox_pip.py [testenv] -deps=-rtests/requirements.txt +deps=-r{toxinidir}/tests/requirements.txt install_command = {[helpers]pip} install {opts} {packages} list_dependencies_command = {[helpers]pip} freeze --all setenv=COVERAGE_FILE={toxworkdir}/.coverage.{envname}