| Index: chrome/app/policy/PRESUBMIT.py
|
| diff --git a/chrome/app/policy/PRESUBMIT.py b/chrome/app/policy/PRESUBMIT.py
|
| deleted file mode 100644
|
| index 91f24c475e8ecab02ca4bb3371e4ad33902a6732..0000000000000000000000000000000000000000
|
| --- a/chrome/app/policy/PRESUBMIT.py
|
| +++ /dev/null
|
| @@ -1,118 +0,0 @@
|
| -# 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.
|
| -
|
| -# If this presubmit check fails or misbehaves, please complain to
|
| -# mnissler@chromium.org, pastarmovj@chromium.org or joaodasilva@chromium.org.
|
| -
|
| -import itertools
|
| -import sys
|
| -import xml.dom.minidom
|
| -
|
| -def _GetPolicyTemplates(template_path):
|
| - # Read list of policies in the template. eval() is used instead of a JSON
|
| - # parser because policy_templates.json is not quite JSON, and uses some
|
| - # python features such as #-comments and '''strings'''. policy_templates.json
|
| - # is actually maintained as a python dictionary.
|
| - with open(template_path) as f:
|
| - template_data = eval(f.read(), {})
|
| - policies = ( policy
|
| - for policy in template_data['policy_definitions']
|
| - if policy['type'] != 'group' )
|
| - groups = ( policy['policies']
|
| - for policy in template_data['policy_definitions']
|
| - if policy['type'] == 'group' )
|
| - subpolicies = ( policy for group in groups for policy in group )
|
| - return list(itertools.chain(policies, subpolicies))
|
| -
|
| -def _CheckPolicyTemplatesSyntax(input_api, output_api):
|
| - filepath = input_api.os_path.join(input_api.PresubmitLocalPath(),
|
| - 'policy_templates.json')
|
| - if any(f.AbsoluteLocalPath() == filepath
|
| - for f in input_api.AffectedFiles()):
|
| - old_sys_path = sys.path
|
| - try:
|
| - sys.path = [input_api.PresubmitLocalPath()] + sys.path
|
| - # Optimization: only load this when it's needed.
|
| - import syntax_check_policy_template_json
|
| - checker = syntax_check_policy_template_json.PolicyTemplateChecker()
|
| - if checker.Run([], filepath) > 0:
|
| - return [output_api.PresubmitError('Syntax error(s) in file:',
|
| - [filepath])]
|
| - finally:
|
| - sys.path = old_sys_path
|
| - return []
|
| -
|
| -
|
| -def _CheckPolicyTestCases(input_api, output_api, policies):
|
| - # Read list of policies in chrome/test/data/policy/policy_test_cases.json.
|
| - root = input_api.change.RepositoryRoot()
|
| - policy_test_cases_file = input_api.os_path.join(
|
| - root, 'chrome', 'test', 'data', 'policy', 'policy_test_cases.json')
|
| - test_names = input_api.json.load(open(policy_test_cases_file)).keys()
|
| - tested_policies = frozenset(name for name in test_names if name[:2] != '--')
|
| - policy_names = frozenset(policy['name'] for policy in policies)
|
| -
|
| - # Finally check if any policies are missing.
|
| - missing = policy_names - tested_policies
|
| - extra = tested_policies - policy_names
|
| - error_missing = ('Policy \'%s\' was added to policy_templates.json but not '
|
| - 'to src/chrome/test/data/policy/policy_test_cases.json. '
|
| - 'Please update both files.')
|
| - error_extra = ('Policy \'%s\' is tested by '
|
| - 'src/chrome/test/data/policy/policy_test_cases.json but is not'
|
| - ' defined in policy_templates.json. Please update both files.')
|
| - results = []
|
| - for policy in missing:
|
| - results.append(output_api.PresubmitError(error_missing % policy))
|
| - for policy in extra:
|
| - results.append(output_api.PresubmitError(error_extra % policy))
|
| - return results
|
| -
|
| -
|
| -def _CheckPolicyHistograms(input_api, output_api, policies):
|
| - root = input_api.change.RepositoryRoot()
|
| - histograms = input_api.os_path.join(
|
| - root, 'tools', 'metrics', 'histograms', 'histograms.xml')
|
| - with open(histograms) as f:
|
| - tree = xml.dom.minidom.parseString(f.read())
|
| - enums = (tree.getElementsByTagName('histogram-configuration')[0]
|
| - .getElementsByTagName('enums')[0]
|
| - .getElementsByTagName('enum'))
|
| - policy_enum = [e for e in enums
|
| - if e.getAttribute('name') == 'EnterprisePolicies'][0]
|
| - policy_ids = frozenset([int(e.getAttribute('value'))
|
| - for e in policy_enum.getElementsByTagName('int')])
|
| -
|
| - error_missing = ('Policy \'%s\' was added to policy_templates.json but not '
|
| - 'to src/tools/metrics/histograms/histograms.xml. '
|
| - 'Please update both files.')
|
| - results = []
|
| - for policy in policies:
|
| - if policy['id'] not in policy_ids:
|
| - results.append(output_api.PresubmitError(error_missing % policy['name']))
|
| - return results
|
| -
|
| -
|
| -def _CommonChecks(input_api, output_api):
|
| - results = []
|
| - results.extend(_CheckPolicyTemplatesSyntax(input_api, output_api))
|
| -
|
| - os_path = input_api.os_path
|
| - local_path = input_api.PresubmitLocalPath()
|
| - template_path = os_path.join(local_path, 'policy_templates.json')
|
| - affected_files = input_api.AffectedFiles()
|
| - if any(f.AbsoluteLocalPath() == template_path for f in affected_files):
|
| - policies = _GetPolicyTemplates(template_path)
|
| - results.extend(_CheckPolicyTestCases(input_api, output_api, policies))
|
| - results.extend(_CheckPolicyHistograms(input_api, output_api, policies))
|
| -
|
| - return results
|
| -
|
| -
|
| -def CheckChangeOnUpload(input_api, output_api):
|
| - return _CommonChecks(input_api, output_api)
|
| -
|
| -
|
| -def CheckChangeOnCommit(input_api, output_api):
|
| - return _CommonChecks(input_api, output_api)
|
|
|