Commit 401b25c8 authored by Edward Lesmes's avatar Edward Lesmes Committed by Commit Bot

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/+/1875108Reviewed-by: 's avatarDirk Pranke <dpranke@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
parent db1e79c1
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment