# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Top-level presubmit script for test_health.
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details on the presubmit API built into depot_tools.
"""
import pathlib
PRESUBMIT_VERSION = '2.0.0'
def _PythonChecks(input_api, output_api):
_CHROMIUM_SRC_ROOT = pathlib.Path(
input_api.PresubmitLocalPath()).parents[3].resolve(strict=True)
_JAVALANG_SRC_PATH = (_CHROMIUM_SRC_ROOT / 'third_party' / 'javalang' /
'src').resolve(strict=False)
if not _JAVALANG_SRC_PATH.exists():
return []
checks = input_api.canned_checks.GetUnitTestsRecursively(
input_api,
output_api,
input_api.PresubmitLocalPath(),
files_to_check=[r'.+_unittest\.py$'],
files_to_skip=[])
return input_api.RunTests(checks, False)
def CheckChangeOnUpload(input_api, output_api):
"""Presubmit checks to run on upload of a CL."""
return _PythonChecks(input_api, output_api)
def CheckChangeOnCommit(input_api, output_api):
"""Presubmit checks to run on submission (continuous queue)."""
# Skip presubmit on CQ since the `javalang` dependency is not available in
# non-Android checkouts; see crbug.com/1093878 for more context.
return []