Chromium Code Reviews| Index: tools/metrics/rappor/pretty_print_test.py |
| diff --git a/tools/metrics/rappor/pretty_print_test.py b/tools/metrics/rappor/pretty_print_test.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..a399c37edae16ea89203289de7b27a5523dc2f1a |
| --- /dev/null |
| +++ b/tools/metrics/rappor/pretty_print_test.py |
| @@ -0,0 +1,82 @@ |
| +#!/usr/bin/env python |
| +# Copyright 2014 The Chromium Authors. All rights reserved. |
|
Alexei Svitkine (slow)
2015/02/17 01:36:54
2015
Steven Holte
2015/02/17 19:33:38
Done.
|
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +import unittest |
| + |
| +import pretty_print |
| + |
| + |
| +PRETTY_XML = """ |
| +<!-- Comment1 --> |
| + |
| +<rappor-configuration> |
| +<!-- Comment2 --> |
| + |
| +<rappor-parameter-types> |
| +<!-- Comment3 --> |
| + |
| +<rappor-parameters name="TEST_RAPPOR_TYPE"> |
| + <summary> |
| + Fake type for tests. |
| + </summary> |
| + <parameters num-cohorts="128" bytes="1" hash-functions="2" fake-prob="0.5" |
| + fake-one-prob="0.5" one-coin-prob="0.75" zero-coin-prob="0.25" |
| + reporting-level="COARSE"/> |
| +</rappor-parameters> |
| + |
| +</rappor-parameter-types> |
| + |
| +<rappor-metrics> |
| +<!-- Comment4 --> |
| + |
| +<rappor-metric name="Test.Rappor.Metric" type="TEST_RAPPOR_TYPE"> |
| + <owner>user1@chromium.org</owner> |
| + <owner>user2@chromium.org</owner> |
| + <summary> |
| + A fake metric summary. |
| + </summary> |
| +</rappor-metric> |
| + |
| +</rappor-metrics> |
| + |
| +</rappor-configuration> |
| +""".strip() |
| + |
| +BASIC_METRIC = { |
| + 'comments': [], |
| + 'name': 'Test.Rappor.Metric', |
| + 'type': 'TEST_RAPPOR_TYPE', |
| + 'owners': ['user1@chromium.org', 'user2@chromium.org'], |
| + 'summary': 'A fake metric summary.', |
| +} |
| + |
| + |
| +class ActionXmlTest(unittest.TestCase): |
| + |
| + def testIsPretty(self): |
| + result = pretty_print.UpdateXML(PRETTY_XML) |
| + self.assertEqual(PRETTY_XML, result) |
| + |
| + def testParsing(self): |
| + comments, config = pretty_print.RAPPOR_XML_TYPE.Parse(PRETTY_XML) |
| + self.assertEqual(BASIC_METRIC, config['metrics']['metrics'][0]) |
| + self.assertEqual(set(['TEST_RAPPOR_TYPE']), |
| + pretty_print.GetTypeNames(config)) |
| + |
| + def testMissingOwners(self): |
| + self.assertFalse(pretty_print.HasMissingOwners([BASIC_METRIC])) |
| + no_owners = BASIC_METRIC.copy() |
| + no_owners['owners'] = [] |
| + self.assertTrue(pretty_print.HasMissingOwners([no_owners])) |
| + |
| + def testInvalidTypes(self): |
| + self.assertFalse(pretty_print.HasInvalidTypes( |
| + set(['TEST_RAPPOR_TYPE']), [BASIC_METRIC])) |
| + self.assertTrue(pretty_print.HasInvalidTypes( |
| + set(['OTHER_TYPE']), [BASIC_METRIC])) |
| + |
| + |
| +if __name__ == '__main__': |
| + unittest.main() |