summaryrefslogtreecommitdiff
path: root/chromium/components/policy/tools/PRESUBMIT.py
blob: b6be647687ace900b7ef51425a489eddfc648e26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os


USE_PYTHON3 = True


def _RunOtherPresubmit(function_name, input_api, output_api):
  # Apply the PRESUBMIT for components/policy/resources to run the syntax check
  component_resources_path = os.path.join('components', 'policy', 'resources')

  # Skip the presubmit if //components/policy/resources is changed as well.
  if any(component_resources_path in os.path.dirname(changed_file.LocalPath())
         for changed_file in input_api.change.AffectedFiles()):
    return []

  presubmit_path = os.path.join(input_api.change.RepositoryRoot(),
                                component_resources_path, 'PRESUBMIT.py')
  presubmit_content = input_api.ReadFile(presubmit_path)
  global_vars = {}
  exec(presubmit_content, global_vars)
  return global_vars[function_name](input_api, output_api)


def _RunPythonUnitTests(input_api, output_api):
  tests = input_api.canned_checks.GetUnitTestsInDirectory(
      input_api,
      output_api,
      directory='.',
      files_to_check=[r'^.+_test\.py$'],
      run_on_python2=False)
  return input_api.RunTests(tests)


def CheckChangeOnUpload(input_api, output_api):
  output = _RunOtherPresubmit("CheckChangeOnUpload", input_api, output_api)
  output.extend(_RunPythonUnitTests(input_api, output_api))
  return output


def CheckChangeOnCommit(input_api, output_api):
  output = _RunOtherPresubmit("CheckChangeOnCommit", input_api, output_api)
  output.extend(_RunPythonUnitTests(input_api, output_api))
  return output