mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-34011: Fixes missing venv files and other tests (GH-9458)
This commit is contained in:
parent
bc85475058
commit
f14c28f397
8 changed files with 146 additions and 112 deletions
|
@ -235,21 +235,34 @@ class TestSysConfig(unittest.TestCase):
|
|||
def test_symlink(self):
|
||||
# On Windows, the EXE needs to know where pythonXY.dll is at so we have
|
||||
# to add the directory to the path.
|
||||
env = None
|
||||
if sys.platform == "win32":
|
||||
os.environ["PATH"] = "{};{}".format(
|
||||
os.path.dirname(sys.executable), os.environ["PATH"])
|
||||
env = {k.upper(): os.environ[k] for k in os.environ}
|
||||
env["PATH"] = "{};{}".format(
|
||||
os.path.dirname(sys.executable), env.get("PATH", ""))
|
||||
# Requires PYTHONHOME as well since we locate stdlib from the
|
||||
# EXE path and not the DLL path (which should be fixed)
|
||||
env["PYTHONHOME"] = os.path.dirname(sys.executable)
|
||||
if sysconfig.is_python_build(True):
|
||||
env["PYTHONPATH"] = os.path.dirname(os.__file__)
|
||||
|
||||
# Issue 7880
|
||||
def get(python):
|
||||
def get(python, env=None):
|
||||
cmd = [python, '-c',
|
||||
'import sysconfig; print(sysconfig.get_platform())']
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=os.environ)
|
||||
return p.communicate()
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, env=env)
|
||||
out, err = p.communicate()
|
||||
if p.returncode:
|
||||
print((out, err))
|
||||
self.fail('Non-zero return code {0} (0x{0:08X})'
|
||||
.format(p.returncode))
|
||||
return out, err
|
||||
real = os.path.realpath(sys.executable)
|
||||
link = os.path.abspath(TESTFN)
|
||||
os.symlink(real, link)
|
||||
try:
|
||||
self.assertEqual(get(real), get(link))
|
||||
self.assertEqual(get(real), get(link, env))
|
||||
finally:
|
||||
unlink(link)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue