mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
bpo-45582: Ensure PYTHONHOME still overrides detected build prefixes (GH-29948)
This commit is contained in:
parent
265918bb1d
commit
b7ef27bc08
2 changed files with 32 additions and 0 deletions
|
@ -208,6 +208,36 @@ class MockGetPathTests(unittest.TestCase):
|
||||||
actual = getpath(ns, expected)
|
actual = getpath(ns, expected)
|
||||||
self.assertEqual(expected, actual)
|
self.assertEqual(expected, actual)
|
||||||
|
|
||||||
|
def test_buildtree_pythonhome_win32(self):
|
||||||
|
"Test an out-of-build-tree layout on Windows with PYTHONHOME override."
|
||||||
|
ns = MockNTNamespace(
|
||||||
|
argv0=r"C:\Out\python.exe",
|
||||||
|
real_executable=r"C:\Out\python.exe",
|
||||||
|
ENV_PYTHONHOME=r"C:\CPython",
|
||||||
|
)
|
||||||
|
ns.add_known_xfile(r"C:\Out\python.exe")
|
||||||
|
ns.add_known_file(r"C:\CPython\Lib\os.py")
|
||||||
|
ns.add_known_file(r"C:\Out\pybuilddir.txt", [""])
|
||||||
|
expected = dict(
|
||||||
|
executable=r"C:\Out\python.exe",
|
||||||
|
base_executable=r"C:\Out\python.exe",
|
||||||
|
prefix=r"C:\CPython",
|
||||||
|
exec_prefix=r"C:\CPython",
|
||||||
|
# This build_prefix is a miscalculation, because we have
|
||||||
|
# moved the output direction out of the prefix.
|
||||||
|
# Specify PYTHONHOME to get the correct prefix/exec_prefix
|
||||||
|
build_prefix="C:\\",
|
||||||
|
_is_python_build=1,
|
||||||
|
module_search_paths_set=1,
|
||||||
|
module_search_paths=[
|
||||||
|
r"C:\Out\python98.zip",
|
||||||
|
r"C:\CPython\Lib",
|
||||||
|
r"C:\Out",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
actual = getpath(ns, expected)
|
||||||
|
self.assertEqual(expected, actual)
|
||||||
|
|
||||||
def test_normal_posix(self):
|
def test_normal_posix(self):
|
||||||
"Test a 'standard' install layout on *nix"
|
"Test a 'standard' install layout on *nix"
|
||||||
ns = MockPosixNamespace(
|
ns = MockPosixNamespace(
|
||||||
|
|
|
@ -500,6 +500,8 @@ else:
|
||||||
prefix, had_delim, exec_prefix = home.partition(DELIM)
|
prefix, had_delim, exec_prefix = home.partition(DELIM)
|
||||||
if not had_delim:
|
if not had_delim:
|
||||||
exec_prefix = prefix
|
exec_prefix = prefix
|
||||||
|
# Reset the standard library directory if it was already set
|
||||||
|
stdlib_dir = None
|
||||||
|
|
||||||
|
|
||||||
# First try to detect prefix by looking alongside our runtime library, if known
|
# First try to detect prefix by looking alongside our runtime library, if known
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue