https://github.com/python/cpython/commit/b23b27bc556857be73ee0f2379441c422b6fee26
commit: b23b27bc556857be73ee0f2379441c422b6fee26
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2025-01-23T15:50:04+01:00
summary:
gh-128690: Update test_embed for getpath.py exec_prefix change (#129137)
files:
M Lib/test/test_embed.py
diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
index bd01913e49d170..ffb69c87a065aa 100644
--- a/Lib/test/test_embed.py
+++ b/Lib/test/test_embed.py
@@ -51,6 +51,14 @@
MAX_HASH_SEED = 4294967295
ABI_THREAD = 't' if sysconfig.get_config_var('Py_GIL_DISABLED') else ''
+# PLATSTDLIB_LANDMARK copied from Modules/getpath.py
+if os.name == 'nt':
+ PLATSTDLIB_LANDMARK = f'{sys.platlibdir}'
+else:
+ VERSION_MAJOR = sys.version_info.major
+ VERSION_MINOR = sys.version_info.minor
+ PLATSTDLIB_LANDMARK = (f'{sys.platlibdir}/python{VERSION_MAJOR}.'
+ f'{VERSION_MINOR}{ABI_THREAD}/lib-dynload')
# If we are running from a build dir, but the stdlib has been installed,
@@ -1596,7 +1604,13 @@ def test_init_pyvenv_cfg(self):
with self.tmpdir_with_python() as tmpdir, \
tempfile.TemporaryDirectory() as pyvenv_home:
+
ver = sys.version_info
+ base_prefix = sysconfig.get_config_var("prefix")
+
+ # gh-128690: base_exec_prefix depends if PLATSTDLIB_LANDMARK exists
+ platstdlib = os.path.join(base_prefix, PLATSTDLIB_LANDMARK)
+ change_exec_prefix = not os.path.isdir(platstdlib)
if not MS_WINDOWS:
lib_dynload = os.path.join(pyvenv_home,
@@ -1620,7 +1634,8 @@ def test_init_pyvenv_cfg(self):
paths = self.module_search_paths()
if not MS_WINDOWS:
- paths[-1] = lib_dynload
+ if change_exec_prefix:
+ paths[-1] = lib_dynload
else:
paths = [
os.path.join(tmpdir, os.path.basename(paths[0])),
@@ -1630,16 +1645,16 @@ def test_init_pyvenv_cfg(self):
executable = self.test_exe
base_executable = os.path.join(pyvenv_home,
os.path.basename(executable))
- exec_prefix = pyvenv_home
config = {
- 'base_prefix': sysconfig.get_config_var("prefix"),
- 'base_exec_prefix': exec_prefix,
+ 'base_prefix': base_prefix,
'exec_prefix': tmpdir,
'prefix': tmpdir,
'base_executable': base_executable,
'executable': executable,
'module_search_paths': paths,
}
+ if change_exec_prefix:
+ config['base_exec_prefix'] = pyvenv_home
if MS_WINDOWS:
config['base_prefix'] = pyvenv_home
config['stdlib_dir'] = os.path.join(pyvenv_home, 'Lib')
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]