1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # Copyright (c) 2012 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.
- """Enforces json format.
- See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
- for more details on the presubmit API built into depot_tools.
- """
- PRESUBMIT_VERSION = '2.0.0'
- USE_PYTHON3 = True
- _IGNORE_FREEZE_FOOTER = 'Ignore-Freeze'
- # The time module's handling of timezones is abysmal, so the boundaries are
- # precomputed in UNIX time
- _FREEZE_START = 1639641600 # 2021/12/16 00:00 -0800
- _FREEZE_END = 1641196800 # 2022/01/03 00:00 -0800
- def CheckFreeze(input_api, output_api):
- if _FREEZE_START <= input_api.time.time() < _FREEZE_END:
- footers = input_api.change.GitFootersFromDescription()
- if _IGNORE_FREEZE_FOOTER not in footers:
- def convert(t):
- ts = input_api.time.localtime(t)
- return input_api.time.strftime('%Y/%m/%d %H:%M %z', ts)
- return [
- output_api.PresubmitError(
- 'There is a prod freeze in effect from {} until {},'
- ' files in //testing/buildbot cannot be modified'.format(
- convert(_FREEZE_START), convert(_FREEZE_END)))
- ]
- return []
- def CheckSourceSideSpecs(input_api, output_api):
- return input_api.RunTests([
- input_api.Command(name='check source side specs',
- cmd=[
- input_api.python3_executable,
- 'generate_buildbot_json.py', '--check', '--verbose'
- ],
- kwargs={},
- message=output_api.PresubmitError),
- ])
- def CheckTests(input_api, output_api):
- glob = input_api.os_path.join(input_api.PresubmitLocalPath(), '*test.py')
- tests = input_api.canned_checks.GetUnitTests(input_api,
- output_api,
- input_api.glob(glob),
- run_on_python2=False,
- run_on_python3=True,
- skip_shebang_check=True)
- return input_api.RunTests(tests)
- def CheckManageJsonFiles(input_api, output_api):
- return input_api.RunTests([
- input_api.Command(
- name='manage JSON files',
- cmd=[input_api.python3_executable, 'manage.py', '--check'],
- kwargs={},
- message=output_api.PresubmitError),
- ])
|