| # Copyright 2012 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Presubmit script for changes affecting tools/json_schema_compiler/ |
| |
| See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts |
| for more details about the presubmit API built into depot_tools. |
| """ |
| |
| import sys |
| |
| PRESUBMIT_VERSION = '2.0.0' |
| TEST_FILE_PATTERN = [r'.+_test.py$'] |
| # TODO(crbug.com/359623676): Fix the lint errors in these files and remove them |
| # from the list. |
| PYLINT_FILES_TO_SKIP = [ |
| 'code_util.py', |
| 'compiler.py', |
| 'cpp_generator.py', |
| 'cpp_namespace_environment.py', |
| 'cpp_bundle_generator.py', |
| 'cpp_type_generator.py', |
| 'cpp_type_generator_test.py', |
| 'cc_generator.py', |
| 'features_cc_generator.py', |
| 'features_compiler.py', |
| 'features_h_generator.py', |
| 'highlighters/hilite_me_highlighter.py', |
| 'highlighters/none_highlighter.py', |
| 'highlighters/pygments_highlighter.py', |
| 'generate_all_externs.py', |
| 'feature_compiler.py', |
| 'h_generator.py', |
| 'js_externs_generator.py', |
| 'idl_schema.py', |
| 'json_schema.py', |
| 'js_interface_generator.py', |
| 'js_util.py', |
| 'namespace_resolver.py', |
| 'schema_loader.py', |
| 'model.py', |
| 'util_cc_helper.py', |
| 'idl_schema_test.py', |
| 'ts_definition_generator.py', |
| 'preview.py', |
| 'ppapi/generators/idl_ast.py', |
| 'ppapi/generators/idl_log.py', |
| 'ppapi/generators/idl_lint.py', |
| 'ppapi/generators/idl_namespace.py', |
| 'ppapi/generators/idl_option.py', |
| 'ppapi/generators/idl_lexer.py', |
| 'ppapi/generators/idl_node.py', |
| 'ppapi/generators/idl_outfile.py', |
| 'ppapi/generators/idl_visitor.py', |
| 'ppapi/generators/idl_propertynode.py', |
| 'ppapi/generators/idl_release.py', |
| 'ppapi/generators/idl_parser.py', |
| ] |
| |
| |
| def CheckExterns(input_api, output_api): |
| """Make sure tool changes update the generated externs.""" |
| original_sys_path = sys.path |
| try: |
| sys.path.insert(0, input_api.PresubmitLocalPath()) |
| # pylint: disable=import-outside-toplevel |
| from generate_all_externs import Generate |
| # pylint: enable=import-outside-toplevel |
| finally: |
| sys.path = original_sys_path |
| |
| return Generate(input_api, output_api, dryrun=True) |
| |
| |
| def CheckPylint(input_api, output_api): |
| return input_api.canned_checks.RunPylint( |
| input_api, output_api, version='2.7', files_to_skip=PYLINT_FILES_TO_SKIP |
| ) |
| |
| |
| def CheckTests(input_api, output_api): |
| return input_api.canned_checks.RunUnitTestsInDirectory( |
| input_api, output_api, '.', files_to_check=TEST_FILE_PATTERN |
| ) |