[Python-checkins] bpo-45506: Fix test_embed expecting to not find stdlib in source tree build when stdlib has been installed. (GH-29649)

zooba webhook-mailer at python.org
Fri Nov 19 19:11:44 EST 2021


https://github.com/python/cpython/commit/4c616911b69ce07fb35da1721506bfaba0998c30
commit: 4c616911b69ce07fb35da1721506bfaba0998c30
branch: main
author: Steve Dower <steve.dower at python.org>
committer: zooba <steve.dower at microsoft.com>
date: 2021-11-20T00:11:40Z
summary:

bpo-45506: Fix test_embed expecting to not find stdlib in source tree build when stdlib has been installed. (GH-29649)

files:
M Lib/test/test_embed.py

diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
index a0d61504f427d..e1af15dd70ff9 100644
--- a/Lib/test/test_embed.py
+++ b/Lib/test/test_embed.py
@@ -35,6 +35,13 @@
 MAX_HASH_SEED = 4294967295
 
 
+# If we are running from a build dir, but the stdlib has been installed,
+# some tests need to expect different results.
+STDLIB_INSTALL = os.path.join(sys.prefix, sys.platlibdir,
+    f'python{sys.version_info.major}.{sys.version_info.minor}')
+if not os.path.isfile(os.path.join(STDLIB_INSTALL, 'os.py')):
+    STDLIB_INSTALL = None
+
 def debug_build(program):
     program = os.path.basename(program)
     name = os.path.splitext(program)[0]
@@ -1307,10 +1314,8 @@ def test_init_pybuilddir(self):
                 'base_executable': executable,
                 'executable': executable,
                 'module_search_paths': module_search_paths,
-                # The current getpath.c doesn't determine the stdlib dir
-                # in this case.
-                'stdlib_dir': None,
-                'use_frozen_modules': -1,
+                'stdlib_dir': STDLIB_INSTALL,
+                'use_frozen_modules': 1 if STDLIB_INSTALL else -1,
             }
             env = self.copy_paths_by_env(config)
             self.check_all_configs("test_init_compat_config", config,
@@ -1381,8 +1386,8 @@ def test_init_pyvenv_cfg(self):
             else:
                 # The current getpath.c doesn't determine the stdlib dir
                 # in this case.
-                config['stdlib_dir'] = None
-                config['use_frozen_modules'] = -1
+                config['stdlib_dir'] = STDLIB_INSTALL
+                config['use_frozen_modules'] = 1 if STDLIB_INSTALL else -1
 
             env = self.copy_paths_by_env(config)
             self.check_all_configs("test_init_compat_config", config,



More information about the Python-checkins mailing list