OLD | NEW |
1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Top-level presubmit script for depot tools. | 5 """Top-level presubmit script for depot tools. |
6 | 6 |
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for | 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for |
8 details on the presubmit API built into gcl. | 8 details on the presubmit API built into gcl. |
9 """ | 9 """ |
10 | 10 |
11 UNIT_TESTS = [ | 11 UNIT_TESTS = [ |
12 'tests.gcl_unittest', | 12 'tests.gcl_unittest', |
13 'tests.gclient_scm_test', | 13 'tests.gclient_scm_test', |
14 'tests.gclient_smoketest', | 14 'tests.gclient_smoketest', |
15 'tests.gclient_utils_test', | 15 'tests.gclient_utils_test', |
16 'tests.presubmit_unittest', | 16 'tests.presubmit_unittest', |
17 'tests.scm_unittest', | 17 'tests.scm_unittest', |
18 'tests.trychange_unittest', | 18 'tests.trychange_unittest', |
19 'tests.watchlists_unittest', | 19 'tests.watchlists_unittest', |
20 ] | 20 ] |
21 | 21 |
22 def CheckChangeOnUpload(input_api, output_api): | 22 def CheckChangeOnUpload(input_api, output_api): |
23 output = [] | 23 output = [] |
24 output.extend(input_api.canned_checks.RunPythonUnitTests(input_api, | 24 output.extend(input_api.canned_checks.RunPythonUnitTests(input_api, |
25 output_api, | 25 output_api, |
26 UNIT_TESTS)) | 26 UNIT_TESTS)) |
27 output.extend(WasGitClUploadHookModified(input_api, output_api)) | 27 output.extend(WasGitClUploadHookModified(input_api, output_api)) |
| 28 output.extend(RunPylint(input_api, output_api)) |
28 return output | 29 return output |
29 | 30 |
30 | 31 |
31 def CheckChangeOnCommit(input_api, output_api): | 32 def CheckChangeOnCommit(input_api, output_api): |
32 output = [] | 33 output = [] |
33 output.extend(input_api.canned_checks.RunPythonUnitTests(input_api, | 34 output.extend(input_api.canned_checks.RunPythonUnitTests(input_api, |
34 output_api, | 35 output_api, |
35 UNIT_TESTS)) | 36 UNIT_TESTS)) |
36 output.extend(input_api.canned_checks.CheckDoNotSubmit(input_api, | 37 output.extend(input_api.canned_checks.CheckDoNotSubmit(input_api, |
37 output_api)) | 38 output_api)) |
38 output.extend(WasGitClUploadHookModified(input_api, output_api)) | 39 output.extend(WasGitClUploadHookModified(input_api, output_api)) |
| 40 output.extend(RunPylint(input_api, output_api)) |
39 return output | 41 return output |
40 | 42 |
41 def WasGitClUploadHookModified(input_api, output_api): | 43 def WasGitClUploadHookModified(input_api, output_api): |
42 for affected_file in input_api.AffectedSourceFiles(None): | 44 for affected_file in input_api.AffectedSourceFiles(None): |
43 if (input_api.os_path.basename(affected_file.LocalPath()) == | 45 if (input_api.os_path.basename(affected_file.LocalPath()) == |
44 'git-cl-upload-hook'): | 46 'git-cl-upload-hook'): |
45 return [output_api.PresubmitPromptWarning( | 47 return [output_api.PresubmitPromptWarning( |
46 'Don\'t forget to fix git-cl to download the newest version of ' | 48 'Don\'t forget to fix git-cl to download the newest version of ' |
47 'git-cl-upload-hook')] | 49 'git-cl-upload-hook')] |
48 return [] | 50 return [] |
| 51 |
| 52 def RunPylint(input_api, output_api): |
| 53 import glob |
| 54 files = glob.glob('*.py') |
| 55 # It's a python script |
| 56 files.append('git-try') |
| 57 # It uses non-standard pylint exceptions that makes pylint always fail. |
| 58 files.remove('cpplint.py') |
| 59 proc = input_api.subprocess.Popen(['pylint', '-E'] + files) |
| 60 proc.communicate() |
| 61 if proc.returncode: |
| 62 return [output_api.PresubmitError('Fix pylint errors first.')] |
| 63 return [] |
OLD | NEW |