[Python-checkins] cpython (3.5): Fix script_helper.run_python_until_end(): copy SYSTEMROOT
victor.stinner
python-checkins at python.org
Thu Jan 12 05:54:15 EST 2017
https://hg.python.org/cpython/rev/acf2e51ef746
changeset: 106102:acf2e51ef746
branch: 3.5
user: Victor Stinner <victor.stinner at gmail.com>
date: Thu Jan 12 11:51:46 2017 +0100
summary:
Fix script_helper.run_python_until_end(): copy SYSTEMROOT
Windows requires at least the SYSTEMROOT environment variable to start Python.
If run_python_until_end() doesn't copy SYSTEMROOT, the function always fail on
Windows.
files:
Lib/test/support/script_helper.py | 25 +++++++++++++-----
1 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py
--- a/Lib/test/support/script_helper.py
+++ b/Lib/test/support/script_helper.py
@@ -70,17 +70,28 @@
elif not env_vars and not env_required:
# ignore Python environment variables
cmd_line.append('-E')
- # Need to preserve the original environment, for in-place testing of
- # shared library builds.
- env = os.environ.copy()
+
+ # But a special flag that can be set to override -- in this case, the
+ # caller is responsible to pass the full environment.
+ if env_vars.pop('__cleanenv', None):
+ env = {}
+ if sys.platform == 'win32':
+ # Windows requires at least the SYSTEMROOT environment variable to
+ # start Python.
+ env['SYSTEMROOT'] = os.environ['SYSTEMROOT']
+
+ # Other interesting environment variables, not copied currently:
+ # COMSPEC, HOME, PATH, TEMP, TMPDIR, TMP.
+ else:
+ # Need to preserve the original environment, for in-place testing of
+ # shared library builds.
+ env = os.environ.copy()
+
# set TERM='' unless the TERM environment variable is passed explicitly
# see issues #11390 and #18300
if 'TERM' not in env_vars:
env['TERM'] = ''
- # But a special flag that can be set to override -- in this case, the
- # caller is responsible to pass the full environment.
- if env_vars.pop('__cleanenv', None):
- env = {}
+
env.update(env_vars)
cmd_line.extend(args)
proc = subprocess.Popen(cmd_line, stdin=subprocess.PIPE,
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list