Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: PRESUBMIT.py

Issue 5682011: Add RunPylint as a canned presubmit check. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Addressed review comments Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | presubmit_canned_checks.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: PRESUBMIT.py
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 9531deee314e75749c6dbffcec873a9a0817bf68..d66f5a80b649c1260f5b502269f7d33d4b84edf3 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -19,27 +19,41 @@ UNIT_TESTS = [
'tests.watchlists_unittest',
]
-def CheckChangeOnUpload(input_api, output_api):
+def CommonChecks(input_api, output_api):
output = []
- output.extend(input_api.canned_checks.RunPythonUnitTests(input_api,
- output_api,
- UNIT_TESTS))
+ output.extend(input_api.canned_checks.RunPythonUnitTests(
+ input_api,
+ output_api,
+ UNIT_TESTS))
output.extend(WasGitClUploadHookModified(input_api, output_api))
- output.extend(RunPylint(input_api, output_api))
+
+ def filter_python_sources(affected_file):
+ filepath = affected_file.LocalPath()
+ return ((filepath.endswith('.py') and
+ filepath != 'cpplint.py' and
+ not filepath.startswith('tests')) or
+ filepath == 'git-try')
+
+ output.extend(input_api.canned_checks.RunPylint(
+ input_api,
+ output_api,
+ source_file_filter=filter_python_sources))
return output
+def CheckChangeOnUpload(input_api, output_api):
+ return CommonChecks(input_api, output_api)
+
+
def CheckChangeOnCommit(input_api, output_api):
output = []
- output.extend(input_api.canned_checks.RunPythonUnitTests(input_api,
- output_api,
- UNIT_TESTS))
- output.extend(input_api.canned_checks.CheckDoNotSubmit(input_api,
- output_api))
- output.extend(WasGitClUploadHookModified(input_api, output_api))
- output.extend(RunPylint(input_api, output_api))
+ output.extend(CommonChecks(input_api, output_api))
+ output.extend(input_api.canned_checks.CheckDoNotSubmit(
+ input_api,
+ output_api))
return output
+
def WasGitClUploadHookModified(input_api, output_api):
for affected_file in input_api.AffectedSourceFiles(None):
if (input_api.os_path.basename(affected_file.LocalPath()) ==
@@ -48,27 +62,3 @@ def WasGitClUploadHookModified(input_api, output_api):
'Don\'t forget to fix git-cl to download the newest version of '
'git-cl-upload-hook')]
return []
-
-def RunPylint(input_api, output_api):
- import glob
- files = glob.glob('*.py')
- # It's a python script
- files.append('git-try')
- # It uses non-standard pylint exceptions that makes pylint always fail.
- files.remove('cpplint.py')
- try:
- proc = input_api.subprocess.Popen(['pylint'] + sorted(files))
- proc.communicate()
- if proc.returncode:
- return [output_api.PresubmitError('Fix pylint errors first.')]
- return []
- except OSError:
- if input_api.platform == 'win32':
- return [output_api.PresubmitNotifyResult(
- 'Warning: Can\'t run pylint because it is not installed. Please '
- 'install manually\n'
- 'Cannot do static analysis of python files.')]
- return [output_api.PresubmitError(
- 'Please install pylint with "sudo apt-get install python-setuptools; '
- 'sudo easy_install pylint"\n'
- 'Cannot do static analysis of python files.')]
« no previous file with comments | « no previous file | presubmit_canned_checks.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698