blob: ce2642f6b57d591f5f49343d049f35c8df099ce2 [file] [log] [blame]
# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
PRESUBMIT_VERSION = '2.0.0'
TEST_PATTERNS = [r'.+_test.py$']
class SaveSysPath():
"""Context manager to save and restore the sys.path.
>>> with SaveSysPath(['/path/to/append/to/sys/path']):
... # do stuff
>>> # sys.path is back to original value
"""
def __init__(self, additional_paths=None):
self._original_path = sys.path[:]
self._additional_paths = additional_paths
def __enter__(self):
if self._additional_paths:
sys.path.extend(self._additional_paths)
def __exit__(self, *args):
sys.path = self._original_path
def ChecksPatchFormatted(input_api, output_api):
return input_api.canned_checks.CheckPatchFormatted(input_api,
output_api,
check_js=True)
def ChecksUnitTests(input_api, output_api):
# Run all unit tests under ui/file_manager/base folder.
return input_api.canned_checks.RunUnitTestsInDirectory(
input_api, output_api, 'base', files_to_check=TEST_PATTERNS)
def ChecksCommon(input_api, output_api):
results = []
cwd = input_api.PresubmitLocalPath()
more_paths = [
input_api.os_path.join(cwd, '..', '..', 'tools'),
input_api.os_path.join(cwd, '..', 'chromeos'),
input_api.os_path.join(cwd),
]
with SaveSysPath(more_paths):
from web_dev_style.presubmit_support import CheckStyle
from styles.presubmit_support import _CheckSemanticColors
from base.presubmit_support import _CheckNoDirectLitImport
results += CheckStyle(input_api, output_api)
results += _CheckSemanticColors(input_api, output_api)
results += _CheckNoDirectLitImport(input_api, output_api)
return results
def CheckBannedTsTags(input_api, output_api):
results = []
cwd = input_api.PresubmitLocalPath()
more_paths = [
input_api.os_path.join(cwd),
]
with SaveSysPath(more_paths):
from base.presubmit_support import _CheckBannedTsTags
results += _CheckBannedTsTags(input_api, output_api)
return results