metric_unittests.py (1076B)
1 #!/usr/bin/env vpython3 2 3 # Copyright 2024 The Chromium Authors 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 """File for testing metric.py.""" 7 8 import unittest 9 from average import Average 10 from count import Count 11 from metric import Metric 12 13 14 class MetricTest(unittest.TestCase): 15 """Test metric.py.""" 16 17 def test_no_metric(self) -> None: 18 m = Metric() 19 self.assertFalse(m.dump().metrics) 20 21 def test_multiple_metrics(self) -> None: 22 m = Metric() 23 m.register(Average("a")) 24 m.register(Average("b")) 25 m.register(Count("c")) 26 self.assertEqual(len(m.dump().metrics), 3) 27 self.assertEqual(set([i.name for i in m.dump().metrics]), 28 set(["a", "b", "c"])) 29 30 def test_tags(self) -> None: 31 m = Metric() 32 m.register(Count("c")) 33 m.tag("t1", "t2") 34 m.tag("t3") 35 self.assertEqual(len(m.dump().metrics), 4) 36 self.assertEqual(set([i.name for i in m.dump().metrics]), 37 set(["c", "c@t1", "c@t2", "c@t3"])) 38 39 40 41 if __name__ == '__main__': 42 unittest.main()