chromium/tools/android/test_health/PRESUBMIT.py

# 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 []