https://github.com/python/cpython/commit/b42025de9899003fe888a358e9e873d0411d61b3
commit: b42025de9899003fe888a358e9e873d0411d61b3
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-08-14T07:39:14+03:00
summary:
gh-155726: Restore the sysconfig prefix cache in test_sysconfig (GH-155729)
test_sysconfig_config_vars_no_prefix_cache changes sys.prefix and calls
get_config_vars(), which caches the new prefix in module globals.
tearDown() restored sysconfig._CONFIG_VARS, but not those globals, so the
next get_config_vars() call found the cache stale and replaced
_CONFIG_VARS with a new dict.
files:
M Lib/test/test_sysconfig.py
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index 9bb3e326ff3e95..b40d1a23e13df9 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -64,6 +64,8 @@ def setUp(self):
self.isabs = os.path.isabs
self.splitdrive = os.path.splitdrive
self._config_vars = sysconfig._CONFIG_VARS,
copy(sysconfig._CONFIG_VARS)
+ self._cached_prefixes = (sysconfig._config_vars_cached_prefix,
+ sysconfig._config_vars_cached_exec_prefix)
self._added_envvars = []
self._changed_envvars = []
for var in ('MACOSX_DEPLOYMENT_TARGET', 'PATH'):
@@ -92,6 +94,11 @@ def tearDown(self):
sysconfig._CONFIG_VARS = self._config_vars[0]
sysconfig._CONFIG_VARS.clear()
sysconfig._CONFIG_VARS.update(self._config_vars[1])
+ # Restoring _CONFIG_VARS is not enough: if the cached prefixes are
+ # left over from the test, the next get_config_vars() call finds
+ # the cache stale and replaces _CONFIG_VARS with a new dict.
+ (sysconfig._config_vars_cached_prefix,
+ sysconfig._config_vars_cached_exec_prefix) = self._cached_prefixes
for var, value in self._changed_envvars:
os.environ[var] = value
for var in self._added_envvars:
_______________________________________________
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]