diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2020-01-12 11:38:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-12 11:38:59 -0500 |
commit | d1bf0d2a92350b6dea783821868cc93aba17b813 (patch) | |
tree | e8faa69cbc1f10a12a556e86ee9c652aa880f2d1 | |
parent | 70b3ec0bf0f61d6b7de1beff4bad4b845d836100 (diff) | |
parent | 6cb025eadfbc6bf017ba2bfd80c192ac377be9fb (diff) | |
download | python-setuptools-git-d1bf0d2a92350b6dea783821868cc93aba17b813.tar.gz |
Merge pull request #1962 from pypa/debt/pip-version
Rely on tox-pip-version to upgrade pip
-rw-r--r-- | tools/tox_pip.py | 37 | ||||
-rw-r--r-- | tox.ini | 8 |
2 files changed, 20 insertions, 25 deletions
diff --git a/tools/tox_pip.py b/tools/tox_pip.py index 63518f92..f592e412 100644 --- a/tools/tox_pip.py +++ b/tools/tox_pip.py @@ -1,31 +1,24 @@ -import os -import shutil import subprocess import sys -from glob import glob -VIRTUAL_ENV = os.environ['VIRTUAL_ENV'] -TOX_PIP_DIR = os.path.join(VIRTUAL_ENV, 'pip') + +def remove_setuptools(): + """ + Remove setuptools from the current environment. + """ + print("Removing setuptools") + cmd = [sys.executable, '-m', 'pip', 'uninstall', '-y', 'setuptools'] + # set cwd to something other than '.' to avoid detecting + # '.' as the installed package. + subprocess.check_call(cmd, cwd='.tox') def pip(args): - # First things first, get a recent (stable) version of pip. - if not os.path.exists(TOX_PIP_DIR): - subprocess.check_call([sys.executable, '-m', 'pip', - '--disable-pip-version-check', - 'install', '-t', TOX_PIP_DIR, - '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) - # 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) + # When installing '.', remove setuptools + '.' in args and remove_setuptools() + + cmd = [sys.executable, '-m', 'pip'] + args + subprocess.check_call(cmd) if __name__ == '__main__': @@ -6,15 +6,17 @@ [tox] envlist=python +minversion = 3.2 +requires = + tox-pip-version >= 0.0.6 [helpers] -# Wrapper for calls to pip that make sure the version being used is a -# up-to-date, and to prevent the current working directory from being -# added to `sys.path`. +# Custom pip behavior pip = python {toxinidir}/tools/tox_pip.py [testenv] deps=-r{toxinidir}/tests/requirements.txt +pip_version = pip install_command = {[helpers]pip} install {opts} {packages} list_dependencies_command = {[helpers]pip} freeze --all setenv=COVERAGE_FILE={toxworkdir}/.coverage.{envname} |