diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index c863805d0fefa9..a82e1506f91703 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -68,18 +68,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) @@ -1316,10 +1314,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 00000000000000..ef806a93c018cc --- /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.