[Python-checkins] GH-89858: Fix test_embed for out-of-tree builds (GH-93465)

zooba webhook-mailer at python.org
Fri Jun 17 12:24:26 EDT 2022


https://github.com/python/cpython/commit/96464e5401783c99f1ae24369bb2a854b8c5f46a
commit: 96464e5401783c99f1ae24369bb2a854b8c5f46a
branch: main
author: Kumar Aditya <59607654+kumaraditya303 at users.noreply.github.com>
committer: zooba <steve.dower at microsoft.com>
date: 2022-06-17T17:24:17+01:00
summary:

GH-89858: Fix test_embed for out-of-tree builds (GH-93465)

files:
A Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst
M Lib/test/test_embed.py

diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py
index b2a1eba34b650..c7e5663566b06 100644
--- a/Lib/test/test_embed.py
+++ b/Lib/test/test_embed.py
@@ -67,18 +67,16 @@ def setUp(self):
             ext = ("_d" if debug_build(sys.executable) else "") + ".exe"
             exename += ext
             exepath = builddir
-            expecteddir = os.path.join(support.REPO_ROOT, builddir)
         else:
             exepath = os.path.join(builddir, 'Programs')
-            expecteddir = os.path.join(support.REPO_ROOT, 'Programs')
         self.test_exe = exe = os.path.join(exepath, exename)
-        if exepath != expecteddir or not os.path.exists(exe):
+        if not os.path.exists(exe):
             self.skipTest("%r doesn't exist" % exe)
         # This is needed otherwise we get a fatal error:
         # "Py_Initialize: Unable to get the locale encoding
         # LookupError: no codec search functions registered: can't find encoding"
         self.oldcwd = os.getcwd()
-        os.chdir(support.REPO_ROOT)
+        os.chdir(builddir)
 
     def tearDown(self):
         os.chdir(self.oldcwd)
@@ -1375,10 +1373,11 @@ def test_init_pybuilddir(self):
         with self.tmpdir_with_python() as tmpdir:
             # pybuilddir.txt is a sub-directory relative to the current
             # directory (tmpdir)
+            vpath = sysconfig.get_config_var("VPATH") or ''
             subdir = 'libdir'
             libdir = os.path.join(tmpdir, subdir)
             # The stdlib dir is dirname(executable) + VPATH + 'Lib'
-            stdlibdir = os.path.join(tmpdir, 'Lib')
+            stdlibdir = os.path.normpath(os.path.join(tmpdir, vpath, 'Lib'))
             os.mkdir(libdir)
 
             filename = os.path.join(tmpdir, 'pybuilddir.txt')
diff --git a/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst b/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst
new file mode 100644
index 0000000000000..ef806a93c018c
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2022-06-03-12-22-44.gh-issue-89858.ftBvjE.rst
@@ -0,0 +1 @@
+Fix ``test_embed`` for out-of-tree builds. Patch by Kumar Aditya.



More information about the Python-checkins mailing list