Commit 980759fb authored by Alexei Svitkine's avatar Alexei Svitkine

Reland "Make histograms/pretty_print_test.py run on the bots."

This reverts commit 9cf546ab.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Make histograms/pretty_print_test.py run on the bots."
> 
> This reverts commit 5c5ce638.
> 
> Reason for revert: broke the build
> 
> Original change's description:
> > Make histograms/pretty_print_test.py run on the bots.
> > 
> > This test was added via:
> > https://chromium-review.googlesource.com/1244553
> > 
> > This is a follow-up CL to add it to metrics_python_tests so
> > that it will run on the bots.
> > 
> > Renames Python files to avoid name collisions between
> > different scripts, so that they can run together as part of
> > metrics_python_tests. Also fixes up the rappor model test
> > and adds it to the suite.
> > 
> > Bug: 714123
> > Change-Id: I466584493f7090decdb8b21217347a905b3e6391
> > Reviewed-on: https://chromium-review.googlesource.com/c/1255596
> > Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> > Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#596921}
> 
> TBR=dpranke@chromium.org,asvitkine@chromium.org,holte@chromium.org
> 
> Change-Id: Iebebe68f9c4c4da11e6e79fc14b9853bea737e5c
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 714123
> Reviewed-on: https://chromium-review.googlesource.com/c/1263434
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Commit-Queue: Daniel Cheng <dcheng@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#596931}

TBR=dcheng@chromium.org,dpranke@chromium.org,asvitkine@chromium.org,holte@chromium.org

Change-Id: Ie026170296321cd0cbd4a6fd57506f88388ba295
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 714123
Reviewed-on: https://chromium-review.googlesource.com/c/1263238Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596936}
parent 2daf18b5
...@@ -88,10 +88,9 @@ group("metrics_python_tests") { ...@@ -88,10 +88,9 @@ group("metrics_python_tests") {
"//tools/metrics/metrics_python_tests.py", "//tools/metrics/metrics_python_tests.py",
"//tools/metrics/actions/action_utils.py", "//tools/metrics/actions/action_utils.py",
"//tools/metrics/actions/actions_print_style.py",
"//tools/metrics/actions/extract_actions.py", "//tools/metrics/actions/extract_actions.py",
"//tools/metrics/actions/extract_actions_test.py", "//tools/metrics/actions/extract_actions_test.py",
"//tools/metrics/actions/pretty_print.py",
"//tools/metrics/actions/print_style.py",
"//tools/metrics/common/diff_util.py", "//tools/metrics/common/diff_util.py",
"//tools/metrics/common/models.py", "//tools/metrics/common/models.py",
...@@ -102,13 +101,16 @@ group("metrics_python_tests") { ...@@ -102,13 +101,16 @@ group("metrics_python_tests") {
"//tools/metrics/histograms/extract_histograms.py", "//tools/metrics/histograms/extract_histograms.py",
"//tools/metrics/histograms/generate_expired_histograms_array.py", "//tools/metrics/histograms/generate_expired_histograms_array.py",
"//tools/metrics/histograms/generate_expired_histograms_array_unittest.py", "//tools/metrics/histograms/generate_expired_histograms_array_unittest.py",
"//tools/metrics/histograms/histograms_print_style.py",
"//tools/metrics/histograms/merge_xml.py", "//tools/metrics/histograms/merge_xml.py",
"//tools/metrics/histograms/pretty_print.py",
"//tools/metrics/histograms/pretty_print_test.py",
"//tools/metrics/rappor/model.py", "//tools/metrics/rappor/rappor_model.py",
"//tools/metrics/rappor/pretty_print_test.py", "//tools/metrics/rappor/rappor_model_test.py",
"//tools/metrics/ukm/model.py", "//tools/metrics/ukm/ukm_model.py",
"//tools/metrics/ukm/pretty_print_test.py", "//tools/metrics/ukm/ukm_model_test.py",
"//tools/python/google/path_utils.py", "//tools/python/google/path_utils.py",
......
...@@ -32,7 +32,7 @@ import sys ...@@ -32,7 +32,7 @@ import sys
from xml.dom import minidom from xml.dom import minidom
import action_utils import action_utils
import print_style import actions_print_style
# Import the metrics/common module for pretty print xml. # Import the metrics/common module for pretty print xml.
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
...@@ -712,7 +712,7 @@ def PrettyPrint(actions_dict, comment_nodes, suffixes): ...@@ -712,7 +712,7 @@ def PrettyPrint(actions_dict, comment_nodes, suffixes):
for suffix_tag in suffixes: for suffix_tag in suffixes:
actions_element.appendChild(suffix_tag) actions_element.appendChild(suffix_tag)
return print_style.GetPrintStyle().PrettyPrintXml(doc) return actions_print_style.GetPrintStyle().PrettyPrintXml(doc)
def UpdateXml(original_xml): def UpdateXml(original_xml):
......
#!/usr/bin/env python
# Copyright 2017 The Chromium Authors. All rights reserved. # Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
......
...@@ -24,7 +24,7 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) ...@@ -24,7 +24,7 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
import diff_util import diff_util
import presubmit_util import presubmit_util
import print_style import histograms_print_style
class Error(Exception): class Error(Exception):
...@@ -102,7 +102,7 @@ def PrettyPrintHistogramsTree(tree): ...@@ -102,7 +102,7 @@ def PrettyPrintHistogramsTree(tree):
DropNodesByTagName(tree, 'enums') DropNodesByTagName(tree, 'enums')
canonicalizeUnits(tree) canonicalizeUnits(tree)
fixObsoleteOrder(tree) fixObsoleteOrder(tree)
return print_style.GetPrintStyle().PrettyPrintXml(tree) return histograms_print_style.GetPrintStyle().PrettyPrintXml(tree)
def PrettyPrintEnums(raw_xml): def PrettyPrintEnums(raw_xml):
...@@ -111,7 +111,7 @@ def PrettyPrintEnums(raw_xml): ...@@ -111,7 +111,7 @@ def PrettyPrintEnums(raw_xml):
# Prevent accidentally adding histograms to enums.xml # Prevent accidentally adding histograms to enums.xml
DropNodesByTagName(tree, 'histograms') DropNodesByTagName(tree, 'histograms')
DropNodesByTagName(tree, 'histogram_suffixes_list') DropNodesByTagName(tree, 'histogram_suffixes_list')
return print_style.GetPrintStyle().PrettyPrintXml(tree) return histograms_print_style.GetPrintStyle().PrettyPrintXml(tree)
def main(): def main():
......
...@@ -22,7 +22,9 @@ def resolve(*paths): ...@@ -22,7 +22,9 @@ def resolve(*paths):
sys.exit(typ.main(tests=resolve( sys.exit(typ.main(tests=resolve(
'actions/extract_actions_test.py', 'actions/extract_actions_test.py',
'histograms/generate_expired_histograms_array_unittest.py', 'histograms/generate_expired_histograms_array_unittest.py',
'ukm/pretty_print_test.py', 'histograms/pretty_print_test.py',
'rappor/rappor_model_test.py',
'ukm/ukm_model_test.py',
"../json_comment_eater/json_comment_eater_test.py", "../json_comment_eater/json_comment_eater_test.py",
"../json_to_struct/element_generator_test.py", "../json_to_struct/element_generator_test.py",
"../json_to_struct/struct_generator_test.py", "../json_to_struct/struct_generator_test.py",
......
...@@ -7,13 +7,13 @@ import logging ...@@ -7,13 +7,13 @@ import logging
import os import os
import sys import sys
import model import rappor_model
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
import presubmit_util import presubmit_util
def main(argv): def main(argv):
presubmit_util.DoPresubmitMain(argv, 'rappor.xml', 'rappor.old.xml', presubmit_util.DoPresubmitMain(argv, 'rappor.xml', 'rappor.old.xml',
'pretty_print.py', model.UpdateXML) 'pretty_print.py', rappor_model.UpdateXML)
if '__main__' == __name__: if '__main__' == __name__:
......
...@@ -6,10 +6,9 @@ ...@@ -6,10 +6,9 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import copy import copy
import json
import unittest import unittest
import model import rappor_model
PUBLIC_XML_SNIPPET = """ PUBLIC_XML_SNIPPET = """
<rappor-configuration> <rappor-configuration>
...@@ -90,16 +89,16 @@ PUBLIC_XML_SNIPPET = """ ...@@ -90,16 +89,16 @@ PUBLIC_XML_SNIPPET = """
""" """
PARSED_XML = { PARSED_XML = {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'noiseLevels': { 'noiseLevels': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'levels': [ 'levels': [
{ {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'NO_NOISE', 'name': 'NO_NOISE',
'summary': 'NO_NOISE description.', 'summary': 'NO_NOISE description.',
'values': { 'values': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'fake-prob': 0.0, 'fake-prob': 0.0,
'fake-one-prob': 0.0, 'fake-one-prob': 0.0,
'one-coin-prob': 1.0, 'one-coin-prob': 1.0,
...@@ -107,11 +106,11 @@ PARSED_XML = { ...@@ -107,11 +106,11 @@ PARSED_XML = {
}, },
}, },
{ {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'NORMAL_NOISE', 'name': 'NORMAL_NOISE',
'summary': 'NORMAL_NOISE description.', 'summary': 'NORMAL_NOISE description.',
'values': { 'values': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'fake-prob': 0.5, 'fake-prob': 0.5,
'fake-one-prob': 0.5, 'fake-one-prob': 0.5,
'one-coin-prob': 0.75, 'one-coin-prob': 0.75,
...@@ -121,14 +120,14 @@ PARSED_XML = { ...@@ -121,14 +120,14 @@ PARSED_XML = {
] ]
}, },
'parameterTypes': { 'parameterTypes': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'types': [ 'types': [
{ {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'ETLD_PLUS_ONE', 'name': 'ETLD_PLUS_ONE',
'summary': 'ETLD+1 parameters.', 'summary': 'ETLD+1 parameters.',
'parameters': { 'parameters': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'num-cohorts': 128, 'num-cohorts': 128,
'bytes': 16, 'bytes': 16,
'hash-functions': 2, 'hash-functions': 2,
...@@ -137,11 +136,11 @@ PARSED_XML = { ...@@ -137,11 +136,11 @@ PARSED_XML = {
}, },
}, },
{ {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'SAFEBROWSING_RAPPOR_TYPE', 'name': 'SAFEBROWSING_RAPPOR_TYPE',
'summary': 'SAFEBROWSING parameters.', 'summary': 'SAFEBROWSING parameters.',
'parameters': { 'parameters': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'num-cohorts': 128, 'num-cohorts': 128,
'bytes': 1, 'bytes': 1,
'hash-functions': 2, 'hash-functions': 2,
...@@ -152,24 +151,24 @@ PARSED_XML = { ...@@ -152,24 +151,24 @@ PARSED_XML = {
] ]
}, },
'metrics': { 'metrics': {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'metrics': [{ 'metrics': [{
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'name':
'MultiD.TestMetric', 'MultiD.TestMetric',
'flags': [{ 'flags': [{
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'name':
'flags', 'flags',
'summary': 'summary':
'Flags Summary.', 'Flags Summary.',
'flags': [ 'flags': [
{ {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'summary': 'Bit 0' 'summary': 'Bit 0'
}, },
{ {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'summary': 'What it means', 'summary': 'What it means',
'label': 'MyBit', 'label': 'MyBit',
'bit': 1, 'bit': 1,
...@@ -178,7 +177,7 @@ PARSED_XML = { ...@@ -178,7 +177,7 @@ PARSED_XML = {
}], }],
'owners': ['holte@chromium.org'], 'owners': ['holte@chromium.org'],
'strings': [{ 'strings': [{
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'domain', 'name': 'domain',
'summary': 'Domain Summary.', 'summary': 'Domain Summary.',
}], }],
...@@ -188,12 +187,12 @@ PARSED_XML = { ...@@ -188,12 +187,12 @@ PARSED_XML = {
'SAFEBROWSING_RAPPOR_TYPE', 'SAFEBROWSING_RAPPOR_TYPE',
'uint64': [], 'uint64': [],
}, { }, {
model.models.COMMENT_KEY: [], rappor_model.models.COMMENT_KEY: [],
'name': 'Search.DefaultSearchProvider', 'name': 'Search.DefaultSearchProvider',
'flags': [], 'flags': [],
'owners': ['holte@chromium.org'], 'owners': ['holte@chromium.org'],
'strings': [], 'strings': [],
'summary': 'BLAH BLAH BLAH', 'summary': 'BLAH BLAH BLAH',
'type': 'ETLD_PLUS_ONE', 'type': 'ETLD_PLUS_ONE',
'uint64': [], 'uint64': [],
}] }]
...@@ -262,7 +261,7 @@ PRETTY_PRINTED_XML = """<rappor-configuration> ...@@ -262,7 +261,7 @@ PRETTY_PRINTED_XML = """<rappor-configuration>
<rappor-metric name="Search.DefaultSearchProvider" type="ETLD_PLUS_ONE"> <rappor-metric name="Search.DefaultSearchProvider" type="ETLD_PLUS_ONE">
<owner>holte@chromium.org</owner> <owner>holte@chromium.org</owner>
<summary> <summary>
BLAH BLAH BLAH BLAH BLAH BLAH
</summary> </summary>
</rappor-metric> </rappor-metric>
...@@ -275,14 +274,14 @@ PRETTY_PRINTED_XML = """<rappor-configuration> ...@@ -275,14 +274,14 @@ PRETTY_PRINTED_XML = """<rappor-configuration>
class RapporModelTest(unittest.TestCase): class RapporModelTest(unittest.TestCase):
def testParse(self): def testParse(self):
parsed = model.RAPPOR_XML_TYPE.Parse(PUBLIC_XML_SNIPPET) parsed = rappor_model.RAPPOR_XML_TYPE.Parse(PUBLIC_XML_SNIPPET)
self.assertEqual(PARSED_XML, parsed) self.assertEqual(PARSED_XML, parsed)
def testUpdate(self): def testUpdate(self):
updated = model.UpdateXML(PUBLIC_XML_SNIPPET) updated = rappor_model.UpdateXML(PUBLIC_XML_SNIPPET)
# Compare list of lines for nicer diff on errors. # Compare list of lines for nicer diff on errors.
self.assertEqual(PRETTY_PRINTED_XML.split('\n'), updated.split('\n')) self.assertEqual(PRETTY_PRINTED_XML.split('\n'), updated.split('\n'))
reprinted = model.UpdateXML(updated) reprinted = rappor_model.UpdateXML(updated)
self.assertEqual(PRETTY_PRINTED_XML.split('\n'), reprinted.split('\n')) self.assertEqual(PRETTY_PRINTED_XML.split('\n'), reprinted.split('\n'))
def testIsValidNoise(self): def testIsValidNoise(self):
...@@ -296,19 +295,19 @@ class RapporModelTest(unittest.TestCase): ...@@ -296,19 +295,19 @@ class RapporModelTest(unittest.TestCase):
'zero-coin-prob': 0.25, 'zero-coin-prob': 0.25,
}, },
} }
self.assertTrue(model._IsValidNoiseLevel(valid_noise_level)) self.assertTrue(rappor_model._IsValidNoiseLevel(valid_noise_level))
invalid_noise_level = copy.copy(valid_noise_level) invalid_noise_level = copy.copy(valid_noise_level)
del invalid_noise_level['name'] del invalid_noise_level['name']
self.assertFalse(model._IsValidNoiseLevel(invalid_noise_level)) self.assertFalse(rappor_model._IsValidNoiseLevel(invalid_noise_level))
invalid_noise_level = copy.copy(valid_noise_level) invalid_noise_level = copy.copy(valid_noise_level)
del invalid_noise_level['summary'] del invalid_noise_level['summary']
self.assertFalse(model._IsValidNoiseLevel(invalid_noise_level)) self.assertFalse(rappor_model._IsValidNoiseLevel(invalid_noise_level))
invalid_noise_level = copy.copy(valid_noise_level) invalid_noise_level = copy.copy(valid_noise_level)
del invalid_noise_level['values'] del invalid_noise_level['values']
self.assertFalse(model._IsValidNoiseLevel(invalid_noise_level)) self.assertFalse(rappor_model._IsValidNoiseLevel(invalid_noise_level))
invalid_noise_level = copy.deepcopy(valid_noise_level) invalid_noise_level = copy.deepcopy(valid_noise_level)
del invalid_noise_level['values']['fake-prob'] del invalid_noise_level['values']['fake-prob']
self.assertFalse(model._IsValidNoiseLevel(invalid_noise_level)) self.assertFalse(rappor_model._IsValidNoiseLevel(invalid_noise_level))
def testIsValidRapporType(self): def testIsValidRapporType(self):
noise_level_names = {'NORMAL_NOISE'} noise_level_names = {'NORMAL_NOISE'}
...@@ -323,7 +322,8 @@ class RapporModelTest(unittest.TestCase): ...@@ -323,7 +322,8 @@ class RapporModelTest(unittest.TestCase):
'noise-level': 'NORMAL_NOISE', 'noise-level': 'NORMAL_NOISE',
}, },
} }
self.assertTrue(model._IsValidRapporType(valid_type, noise_level_names)) self.assertTrue(rappor_model._IsValidRapporType(valid_type,
noise_level_names))
def testIsValidRapporMetric(self): def testIsValidRapporMetric(self):
type_names = {'ETLD_PLUS_ONE'} type_names = {'ETLD_PLUS_ONE'}
...@@ -332,23 +332,23 @@ class RapporModelTest(unittest.TestCase): ...@@ -332,23 +332,23 @@ class RapporModelTest(unittest.TestCase):
'flags': [], 'flags': [],
'owners': ['holte@chromium.org'], 'owners': ['holte@chromium.org'],
'strings': [], 'strings': [],
'summary': 'BLAH BLAH BLAH', 'summary': 'BLAH BLAH BLAH',
'type': 'ETLD_PLUS_ONE', 'type': 'ETLD_PLUS_ONE',
'uint64': [], 'uint64': [],
} }
self.assertTrue(model._IsValidMetric(valid_metric, type_names)) self.assertTrue(rappor_model._IsValidMetric(valid_metric, type_names))
invalid_metric = copy.copy(valid_metric) invalid_metric = copy.copy(valid_metric)
del invalid_metric['name'] del invalid_metric['name']
self.assertFalse(model._IsValidMetric(invalid_metric, type_names)) self.assertFalse(rappor_model._IsValidMetric(invalid_metric, type_names))
invalid_metric = copy.copy(valid_metric) invalid_metric = copy.copy(valid_metric)
del invalid_metric['summary'] del invalid_metric['summary']
self.assertFalse(model._IsValidMetric(invalid_metric, type_names)) self.assertFalse(rappor_model._IsValidMetric(invalid_metric, type_names))
invalid_metric = copy.copy(valid_metric) invalid_metric = copy.copy(valid_metric)
invalid_metric['type'] = 'FOO' invalid_metric['type'] = 'FOO'
self.assertFalse(model._IsValidMetric(invalid_metric, type_names)) self.assertFalse(rappor_model._IsValidMetric(invalid_metric, type_names))
invalid_metric = copy.copy(valid_metric) invalid_metric = copy.copy(valid_metric)
invalid_metric['owners'] = [] invalid_metric['owners'] = []
self.assertFalse(model._IsValidMetric(invalid_metric, type_names)) self.assertFalse(rappor_model._IsValidMetric(invalid_metric, type_names))
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
import os import os
import sys import sys
import model import ukm_model
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
import presubmit_util import presubmit_util
...@@ -14,7 +14,7 @@ import presubmit_util ...@@ -14,7 +14,7 @@ import presubmit_util
def main(argv): def main(argv):
presubmit_util.DoPresubmitMain(argv, 'ukm.xml', 'ukm.old.xml', presubmit_util.DoPresubmitMain(argv, 'ukm.xml', 'ukm.old.xml',
'pretty_print.py', model.UpdateXML) 'pretty_print.py', ukm_model.UpdateXML)
if '__main__' == __name__: if '__main__' == __name__:
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
import unittest import unittest
import model import ukm_model
PRETTY_XML = """ PRETTY_XML = """
...@@ -34,7 +34,7 @@ PRETTY_XML = """ ...@@ -34,7 +34,7 @@ PRETTY_XML = """
class UkmXmlTest(unittest.TestCase): class UkmXmlTest(unittest.TestCase):
def testIsPretty(self): def testIsPretty(self):
result = model.UpdateXML(PRETTY_XML) result = ukm_model.UpdateXML(PRETTY_XML)
self.assertMultiLineEqual(PRETTY_XML, result.strip()) self.assertMultiLineEqual(PRETTY_XML, result.strip())
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment