Commit 8d78bd1f authored by Bruce Dawson's avatar Bruce Dawson Committed by LUCI CQ

Print which PRESUBMIT.py scripts run on Python 2

When running presubmits you can tell if Python 2 presubmits are running,
but it's subtle, and it isn't obvious which presubmits are running under
Python 2.

This makes it obvious by always printing the path to PRESUBMIT.py
scripts that are run under Python 2. This change also fixes a bug in the
--verbose logic - it would print that a script was running before
evaluating _ShouldRunPresubmit.

Bug: 1352347
Change-Id: I45213acdb3b37f7be0713e5caba775841704817c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3826917
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: 's avatarAravind Vasudevan <aravindvasudev@google.com>
parent a358defc
......@@ -1480,11 +1480,13 @@ def DoPostUploadExecuter(change, gerrit_obj, verbose, use_python3=False):
for filename in presubmit_files:
filename = os.path.abspath(filename)
if verbose:
sys.stdout.write('Running %s\n' % filename)
# Accept CRLF presubmit script.
presubmit_script = gclient_utils.FileRead(filename).replace('\r\n', '\n')
if _ShouldRunPresubmit(presubmit_script, use_python3):
if sys.version_info[0] == 2:
sys.stdout.write('Running %s under Python 2.\n' % filename)
elif verbose:
sys.stdout.write('Running %s\n' % filename)
results.extend(executer.ExecPresubmitScript(
presubmit_script, filename, gerrit_obj, change))
......@@ -1752,11 +1754,13 @@ def DoPresubmitChecks(change,
skipped_count += 1
for filename in presubmit_files:
filename = os.path.abspath(filename)
if verbose:
sys.stdout.write('Running %s\n' % filename)
# Accept CRLF presubmit script.
presubmit_script = gclient_utils.FileRead(filename).replace('\r\n', '\n')
if _ShouldRunPresubmit(presubmit_script, use_python3):
if sys.version_info[0] == 2:
sys.stdout.write('Running %s under Python 2.\n' % filename)
elif verbose:
sys.stdout.write('Running %s\n' % filename)
results += executer.ExecPresubmitScript(presubmit_script, filename)
else:
skipped_count += 1
......
......@@ -624,9 +624,12 @@ class PresubmitUnittest(PresubmitTestsBase):
0,
presubmit.DoPostUploadExecuter(
change=change, gerrit_obj=None, verbose=False))
self.assertEqual(
'Running Python ' + str(sys.version_info.major) + ' '
'post upload checks ...\n', sys.stdout.getvalue())
expected = (r'Running Python ' + str(sys.version_info.major) +
r' post upload checks \.\.\.\n')
if sys.version_info[0] == 2:
expected += r'Running .*PRESUBMIT.py under Python 2.\n'
expected += r'Running .*PRESUBMIT.py under Python 2.\n'
self.assertRegexpMatches(sys.stdout.getvalue(), expected)
def testDoPostUploadExecuterWarning(self):
path = os.path.join(self.fake_root_dir, 'PRESUBMIT.py')
......@@ -656,13 +659,18 @@ class PresubmitUnittest(PresubmitTestsBase):
1,
presubmit.DoPostUploadExecuter(
change=change, gerrit_obj=None, verbose=False))
self.assertEqual(
'Running Python ' + str(sys.version_info.major) + ' '
'post upload checks ...\n'
'\n'
'** Post Upload Hook Messages **\n'
'!!\n'
'\n', sys.stdout.getvalue())
extra = ''
if sys.version_info[0] == 2:
extra = r'Running .*PRESUBMIT.py under Python 2.\n'
expected = ('Running Python ' + str(sys.version_info.major) + ' '
'post upload checks \.\.\.\n'
'%s'
'\n'
'\*\* Post Upload Hook Messages \*\*\n'
'!!\n'
'\n' % extra)
self.assertRegexpMatches(sys.stdout.getvalue(), expected)
def testDoPresubmitChecksNoWarningsOrErrors(self):
haspresubmit_path = os.path.join(
......
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