| #!/usr/bin/env vpython3 |
| |
| # Copyright 2024 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """File for testing metric.py.""" |
| |
| import unittest |
| from average import Average |
| from count import Count |
| from metric import Metric |
| |
| |
| class MetricTest(unittest.TestCase): |
| """Test metric.py.""" |
| |
| def test_no_metric(self) -> None: |
| m = Metric() |
| self.assertFalse(m.dump().metrics) |
| |
| def test_multiple_metrics(self) -> None: |
| m = Metric() |
| m.register(Average("a")) |
| m.register(Average("b")) |
| m.register(Count("c")) |
| self.assertEqual(len(m.dump().metrics), 3) |
| self.assertEqual(set([i.name for i in m.dump().metrics]), |
| set(["a", "b", "c"])) |
| |
| def test_tags(self) -> None: |
| m = Metric() |
| m.register(Count("c")) |
| m.tag("t1", "t2") |
| m.tag("t3") |
| self.assertEqual(len(m.dump().metrics), 4) |
| self.assertEqual(set([i.name for i in m.dump().metrics]), |
| set(["c", "c@t1", "c@t2", "c@t3"])) |
| |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |