mirror of
https://github.com/python/cpython.git
synced 2026-04-16 16:51:15 +00:00
[3.14] gh-146310: Fix ensurepip to treat empty WHEEL_PKG_DIR as unset (GH-146357) (#146534)
gh-146310: Fix ensurepip to treat empty WHEEL_PKG_DIR as unset (GH-146357)
Path('') resolves to CWD, so an empty WHEEL_PKG_DIR string caused
ensurepip to search the current working directory for wheel files.
Add a truthiness check to treat empty strings the same as None.
(cherry picked from commit 73cc1fd4f4)
Co-authored-by: Imgyu Kim <kimimgo@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
70affe0dc7
commit
b4a0c8defe
3 changed files with 14 additions and 1 deletions
|
|
@ -16,7 +16,8 @@
|
|||
# policies recommend against bundling dependencies. For example, Fedora
|
||||
# installs wheel packages in the /usr/share/python-wheels/ directory and don't
|
||||
# install the ensurepip._bundled package.
|
||||
if (_pkg_dir := sysconfig.get_config_var('WHEEL_PKG_DIR')) is not None:
|
||||
_pkg_dir = sysconfig.get_config_var('WHEEL_PKG_DIR')
|
||||
if _pkg_dir:
|
||||
_WHEEL_PKG_DIR = Path(_pkg_dir).resolve()
|
||||
else:
|
||||
_WHEEL_PKG_DIR = None
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
import unittest
|
||||
import unittest.mock
|
||||
from pathlib import Path
|
||||
from test.support import import_helper
|
||||
|
||||
import ensurepip
|
||||
import ensurepip._uninstall
|
||||
|
|
@ -30,6 +31,15 @@ def test_version_no_dir(self):
|
|||
# when the bundled pip wheel is used, we get _PIP_VERSION
|
||||
self.assertEqual(ensurepip._PIP_VERSION, ensurepip.version())
|
||||
|
||||
def test_wheel_pkg_dir_none(self):
|
||||
# gh-146310: empty or None WHEEL_PKG_DIR should not search CWD
|
||||
for value in ('', None):
|
||||
with unittest.mock.patch('sysconfig.get_config_var',
|
||||
return_value=value) as get_config_var:
|
||||
module = import_helper.import_fresh_module('ensurepip')
|
||||
self.assertIsNone(module._WHEEL_PKG_DIR)
|
||||
get_config_var.assert_called_once_with('WHEEL_PKG_DIR')
|
||||
|
||||
def test_selected_wheel_path_no_dir(self):
|
||||
pip_filename = f'pip-{ensurepip._PIP_VERSION}-py3-none-any.whl'
|
||||
with unittest.mock.patch.object(ensurepip, '_WHEEL_PKG_DIR', None):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
The :mod:`ensurepip` module no longer looks for ``pip-*.whl`` wheel packages
|
||||
in the current directory.
|
||||
Loading…
Add table
Add a link
Reference in a new issue