mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
gh-95299: Stop installing setuptools as a part of ensurepip and venv (#101039)
Remove the bundled setuptools wheel from ensurepip, and stop installing setuptools in environments created by venv. Co-Authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM> Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
This commit is contained in:
parent
f39e00f952
commit
ece20dba12
13 changed files with 57 additions and 48 deletions
|
@ -20,7 +20,6 @@ class TestPackages(unittest.TestCase):
|
|||
# Test version()
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
self.touch(tmpdir, "pip-1.2.3b1-py2.py3-none-any.whl")
|
||||
self.touch(tmpdir, "setuptools-49.1.3-py3-none-any.whl")
|
||||
with (unittest.mock.patch.object(ensurepip, '_PACKAGES', None),
|
||||
unittest.mock.patch.object(ensurepip, '_WHEEL_PKG_DIR', tmpdir)):
|
||||
self.assertEqual(ensurepip.version(), '1.2.3b1')
|
||||
|
@ -36,15 +35,12 @@ class TestPackages(unittest.TestCase):
|
|||
|
||||
# use bundled wheel packages
|
||||
self.assertIsNotNone(packages['pip'].wheel_name)
|
||||
self.assertIsNotNone(packages['setuptools'].wheel_name)
|
||||
|
||||
def test_get_packages_with_dir(self):
|
||||
# Test _get_packages() with a wheel package directory
|
||||
setuptools_filename = "setuptools-49.1.3-py3-none-any.whl"
|
||||
pip_filename = "pip-20.2.2-py2.py3-none-any.whl"
|
||||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
self.touch(tmpdir, setuptools_filename)
|
||||
self.touch(tmpdir, pip_filename)
|
||||
# not used, make sure that it's ignored
|
||||
self.touch(tmpdir, "wheel-0.34.2-py2.py3-none-any.whl")
|
||||
|
@ -53,15 +49,12 @@ class TestPackages(unittest.TestCase):
|
|||
unittest.mock.patch.object(ensurepip, '_WHEEL_PKG_DIR', tmpdir)):
|
||||
packages = ensurepip._get_packages()
|
||||
|
||||
self.assertEqual(packages['setuptools'].version, '49.1.3')
|
||||
self.assertEqual(packages['setuptools'].wheel_path,
|
||||
os.path.join(tmpdir, setuptools_filename))
|
||||
self.assertEqual(packages['pip'].version, '20.2.2')
|
||||
self.assertEqual(packages['pip'].wheel_path,
|
||||
os.path.join(tmpdir, pip_filename))
|
||||
|
||||
# wheel package is ignored
|
||||
self.assertEqual(sorted(packages), ['pip', 'setuptools'])
|
||||
self.assertEqual(sorted(packages), ['pip'])
|
||||
|
||||
|
||||
class EnsurepipMixin:
|
||||
|
@ -92,13 +85,13 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "setuptools", "pip",
|
||||
unittest.mock.ANY, "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
||||
additional_paths = self.run_pip.call_args[0][1]
|
||||
self.assertEqual(len(additional_paths), 2)
|
||||
self.assertEqual(len(additional_paths), 1)
|
||||
|
||||
def test_bootstrapping_with_root(self):
|
||||
ensurepip.bootstrap(root="/foo/bar/")
|
||||
|
@ -107,7 +100,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "--root", "/foo/bar/",
|
||||
"setuptools", "pip",
|
||||
"pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
@ -118,7 +111,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "--user", "setuptools", "pip",
|
||||
unittest.mock.ANY, "--user", "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
@ -129,7 +122,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "--upgrade", "setuptools", "pip",
|
||||
unittest.mock.ANY, "--upgrade", "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
@ -140,7 +133,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "-v", "setuptools", "pip",
|
||||
unittest.mock.ANY, "-v", "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
@ -151,7 +144,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "-vv", "setuptools", "pip",
|
||||
unittest.mock.ANY, "-vv", "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
@ -162,7 +155,7 @@ class TestBootstrap(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "-vvv", "setuptools", "pip",
|
||||
unittest.mock.ANY, "-vvv", "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
@ -239,7 +232,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"uninstall", "-y", "--disable-pip-version-check", "pip",
|
||||
"setuptools",
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -250,7 +242,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"uninstall", "-y", "--disable-pip-version-check", "-v", "pip",
|
||||
"setuptools",
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -261,7 +252,6 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"uninstall", "-y", "--disable-pip-version-check", "-vv", "pip",
|
||||
"setuptools",
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -272,7 +262,7 @@ class TestUninstall(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"uninstall", "-y", "--disable-pip-version-check", "-vvv",
|
||||
"pip", "setuptools",
|
||||
"pip"
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -312,13 +302,13 @@ class TestBootstrappingMainFunction(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"install", "--no-cache-dir", "--no-index", "--find-links",
|
||||
unittest.mock.ANY, "setuptools", "pip",
|
||||
unittest.mock.ANY, "pip",
|
||||
],
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
|
||||
additional_paths = self.run_pip.call_args[0][1]
|
||||
self.assertEqual(len(additional_paths), 2)
|
||||
self.assertEqual(len(additional_paths), 1)
|
||||
self.assertEqual(exit_code, 0)
|
||||
|
||||
def test_bootstrapping_error_code(self):
|
||||
|
@ -344,7 +334,6 @@ class TestUninstallationMainFunction(EnsurepipMixin, unittest.TestCase):
|
|||
self.run_pip.assert_called_once_with(
|
||||
[
|
||||
"uninstall", "-y", "--disable-pip-version-check", "pip",
|
||||
"setuptools",
|
||||
]
|
||||
)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue