presubmit: Convert literals to strings before setting env variables.

On windows on Python 2, only strings can be environment variables, but
literals are unicode, so we need to convert to strings before setting
env vars.

Change-Id: I40e8e6ae4f5497d56efa568153eb65392dbd85e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1875108
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
changes/08/1875108/3
Edward Lesmes 6 years ago committed by Commit Bot
parent db1e79c1c5
commit 401b25c878

@ -744,10 +744,13 @@ def GetPythonUnitTests(input_api, output_api, unit_tests):
backpath = [
'.', input_api.os_path.pathsep.join(['..'] * (cwd.count('/') + 1))
]
if env.get('PYTHONPATH'):
backpath.append(env.get('PYTHONPATH'))
env['PYTHONPATH'] = input_api.os_path.pathsep.join((backpath))
env.pop('VPYTHON_CLEAR_PYTHONPATH', None)
# We convert to str, since on Windows on Python 2 only strings are allowed
# as environment variables, but literals are unicode since we're importing
# unicode_literals from __future__.
if env.get(str('PYTHONPATH')):
backpath.append(env.get(str('PYTHONPATH')))
env[str('PYTHONPATH')] = input_api.os_path.pathsep.join((backpath))
env.pop(str('VPYTHON_CLEAR_PYTHONPATH'), None)
cmd = [input_api.python_executable, '-m', '%s' % unit_test]
results.append(input_api.Command(
name=unit_test_name,
@ -868,8 +871,11 @@ def GetPylint(input_api, output_api, white_list=None, black_list=None,
input_api.logging.info('Running pylint on %d files', len(files))
input_api.logging.debug('Running pylint on: %s', files)
env = input_api.environ.copy()
env['PYTHONPATH'] = input_api.os_path.pathsep.join(extra_paths_list)
env.pop('VPYTHON_CLEAR_PYTHONPATH', None)
# We convert to str, since on Windows on Python 2 only strings are allowed
# as environment variables, but literals are unicode since we're importing
# unicode_literals from __future__.
env[str('PYTHONPATH')] = input_api.os_path.pathsep.join(extra_paths_list)
env.pop(str('VPYTHON_CLEAR_PYTHONPATH'), None)
input_api.logging.debug(' with extra PYTHONPATH: %r', extra_paths_list)
def GetPylintCmd(flist, extra, parallel):

@ -1511,8 +1511,11 @@ def DoPresubmitChecks(change,
old_environ = os.environ
try:
# Make sure python subprocesses won't generate .pyc files.
# We convert to str, since on Windows on Python 2 only strings are allowed
# as environment variables, but literals are unicode since we're importing
# unicode_literals from __future__.
os.environ = os.environ.copy()
os.environ['PYTHONDONTWRITEBYTECODE'] = '1'
os.environ[str('PYTHONDONTWRITEBYTECODE')] = str('1')
output = PresubmitOutput(input_stream, output_stream)

Loading…
Cancel
Save