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

Side by Side Diff: PRESUBMIT.py

Issue 330423004: Use new common tools in Python scripts (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: append Created 6 years, 6 months 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 unified diff | Download patch
« no previous file with comments | « DEPS ('k') | tools/add_codereview_message.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 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 5
6 """Top-level presubmit script for Skia. 6 """Top-level presubmit script for Skia.
7 7
8 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 8 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
9 for more details about the presubmit API built into gcl. 9 for more details about the presubmit API built into gcl.
10 """ 10 """
(...skipping 28 matching lines...) Expand all
39 if len(contents) > 1 and contents[-1:] != '\n': 39 if len(contents) > 1 and contents[-1:] != '\n':
40 eof_files.append(f.LocalPath()) 40 eof_files.append(f.LocalPath())
41 41
42 if eof_files: 42 if eof_files:
43 return [output_api.PresubmitPromptWarning( 43 return [output_api.PresubmitPromptWarning(
44 'These files should end in a newline character:', 44 'These files should end in a newline character:',
45 items=eof_files)] 45 items=eof_files)]
46 return [] 46 return []
47 47
48 48
49 def _PythonChecks(input_api, output_api):
50 """Run checks on any modified Python files."""
51 pylint_disabled_warnings = (
52 'F0401', # Unable to import.
53 'E0611', # No name in module.
54 'W0232', # Class has no __init__ method.
55 'E1002', # Use of super on an old style class.
56 'W0403', # Relative import used.
57 'R0201', # Method could be a function.
58 'E1003', # Using class name in super.
59 'W0613', # Unused argument.
60 )
61 # Run Pylint on only the modified python files. Unfortunately it still runs
62 # Pylint on the whole file instead of just the modified lines.
63 affected_python_files = []
64 for affected_file in input_api.AffectedSourceFiles(None):
65 affected_file_path = affected_file.LocalPath()
66 if affected_file_path.endswith('.py'):
67 affected_python_files.append(affected_file_path)
68 return input_api.canned_checks.RunPylint(
69 input_api, output_api,
70 disabled_warnings=pylint_disabled_warnings,
71 white_list=affected_python_files)
72
73
49 def _CommonChecks(input_api, output_api): 74 def _CommonChecks(input_api, output_api):
50 """Presubmit checks common to upload and commit.""" 75 """Presubmit checks common to upload and commit."""
51 results = [] 76 results = []
52 sources = lambda x: (x.LocalPath().endswith('.h') or 77 sources = lambda x: (x.LocalPath().endswith('.h') or
53 x.LocalPath().endswith('.gypi') or 78 x.LocalPath().endswith('.gypi') or
54 x.LocalPath().endswith('.gyp') or 79 x.LocalPath().endswith('.gyp') or
55 x.LocalPath().endswith('.py') or 80 x.LocalPath().endswith('.py') or
56 x.LocalPath().endswith('.sh') or 81 x.LocalPath().endswith('.sh') or
57 x.LocalPath().endswith('.cpp')) 82 x.LocalPath().endswith('.cpp'))
58 results.extend( 83 results.extend(
59 _CheckChangeHasEol( 84 _CheckChangeHasEol(
60 input_api, output_api, source_file_filter=sources)) 85 input_api, output_api, source_file_filter=sources))
86 results.extend(_PythonChecks(input_api, output_api))
61 return results 87 return results
62 88
63 89
64 def CheckChangeOnUpload(input_api, output_api): 90 def CheckChangeOnUpload(input_api, output_api):
65 """Presubmit checks for the change on upload. 91 """Presubmit checks for the change on upload.
66 92
67 The following are the presubmit checks: 93 The following are the presubmit checks:
68 * Check change has one and only one EOL. 94 * Check change has one and only one EOL.
69 """ 95 """
70 results = [] 96 results = []
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 # An owner created the CL that is an automatic LGTM. 208 # An owner created the CL that is an automatic LGTM.
183 lgtm_from_owner = True 209 lgtm_from_owner = True
184 210
185 messages = issue_properties.get('messages') 211 messages = issue_properties.get('messages')
186 if messages: 212 if messages:
187 for message in messages: 213 for message in messages:
188 if (message['sender'] in PUBLIC_API_OWNERS and 214 if (message['sender'] in PUBLIC_API_OWNERS and
189 'lgtm' in message['text'].lower()): 215 'lgtm' in message['text'].lower()):
190 # Found an lgtm in a message from an owner. 216 # Found an lgtm in a message from an owner.
191 lgtm_from_owner = True 217 lgtm_from_owner = True
192 break; 218 break
193 219
194 if not lgtm_from_owner: 220 if not lgtm_from_owner:
195 results.append( 221 results.append(
196 output_api.PresubmitError( 222 output_api.PresubmitError(
197 'Since the CL is editing public API, you must have an LGTM from ' 223 'Since the CL is editing public API, you must have an LGTM from '
198 'one of: %s' % str(PUBLIC_API_OWNERS))) 224 'one of: %s' % str(PUBLIC_API_OWNERS)))
199 return results 225 return results
200 226
201 227
202 def CheckChangeOnCommit(input_api, output_api): 228 def CheckChangeOnCommit(input_api, output_api):
203 """Presubmit checks for the change on commit. 229 """Presubmit checks for the change on commit.
204 230
205 The following are the presubmit checks: 231 The following are the presubmit checks:
206 * Check change has one and only one EOL. 232 * Check change has one and only one EOL.
207 * Ensures that the Skia tree is open in 233 * Ensures that the Skia tree is open in
208 http://skia-tree-status.appspot.com/. Shows a warning if it is in 'Caution' 234 http://skia-tree-status.appspot.com/. Shows a warning if it is in 'Caution'
209 state and an error if it is in 'Closed' state. 235 state and an error if it is in 'Closed' state.
210 """ 236 """
211 results = [] 237 results = []
212 results.extend(_CommonChecks(input_api, output_api)) 238 results.extend(_CommonChecks(input_api, output_api))
213 results.extend( 239 results.extend(
214 _CheckTreeStatus(input_api, output_api, json_url=( 240 _CheckTreeStatus(input_api, output_api, json_url=(
215 SKIA_TREE_STATUS_URL + '/banner-status?format=json'))) 241 SKIA_TREE_STATUS_URL + '/banner-status?format=json')))
216 results.extend(_CheckLGTMsForPublicAPI(input_api, output_api)) 242 results.extend(_CheckLGTMsForPublicAPI(input_api, output_api))
217 results.extend(_CheckOwnerIsInAuthorsFile(input_api, output_api)) 243 results.extend(_CheckOwnerIsInAuthorsFile(input_api, output_api))
218 return results 244 return results
OLDNEW
« no previous file with comments | « DEPS ('k') | tools/add_codereview_message.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698