summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-01-12 11:38:59 -0500
committerGitHub <noreply@github.com>2020-01-12 11:38:59 -0500
commitd1bf0d2a92350b6dea783821868cc93aba17b813 (patch)
treee8faa69cbc1f10a12a556e86ee9c652aa880f2d1
parent70b3ec0bf0f61d6b7de1beff4bad4b845d836100 (diff)
parent6cb025eadfbc6bf017ba2bfd80c192ac377be9fb (diff)
downloadpython-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.py37
-rw-r--r--tox.ini8
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__':
diff --git a/tox.ini b/tox.ini
index 6a1af56e..a666f0af 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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}