# Copyright 2019 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import re """Presubmit for build/util""" USE_PYTHON3 = True def _GetFilesToSkip(input_api): files_to_skip = [] affected_files = input_api.change.AffectedFiles() version_script_change = next( (f for f in affected_files if re.search('\\/version\\.py$|\\/version_test\\.py$', f.LocalPath())), None) if version_script_change is None: files_to_skip.append('version_test\\.py$') android_chrome_version_script_change = next( (f for f in affected_files if re.search( '\\/android_chrome_version\\.py$|' '\\/android_chrome_version_test\\.py$', f.LocalPath())), None) if android_chrome_version_script_change is None: files_to_skip.append('android_chrome_version_test\\.py$') return files_to_skip def _GetPythonUnitTests(input_api, output_api): # No need to test if files are unchanged files_to_skip = _GetFilesToSkip(input_api) return input_api.canned_checks.GetUnitTestsRecursively( input_api, output_api, input_api.PresubmitLocalPath(), files_to_check=['.*_test\\.py$'], files_to_skip=files_to_skip, run_on_python2=False, run_on_python3=True, skip_shebang_check=True) def CommonChecks(input_api, output_api): """Presubmit checks run on both upload and commit. """ checks = [] checks.extend(_GetPythonUnitTests(input_api, output_api)) return input_api.RunTests(checks, False) def CheckChangeOnUpload(input_api, output_api): """Presubmit checks on CL upload.""" return CommonChecks(input_api, output_api) def CheckChangeOnCommit(input_api, output_api): """Presubmit checks on commit.""" return CommonChecks(input_api, output_api)