| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import sys | 5 import sys |
| 6 import textwrap | |
| 7 import unittest | 6 import unittest |
| 8 | 7 |
| 9 import mock | 8 import mock |
| 10 from infra_libs.ts_mon.protos import metrics_pb2 | 9 from infra_libs.ts_mon.protos import metrics_pb2 |
| 11 | 10 |
| 12 | 11 |
| 13 from infra_libs.ts_mon.common import distribution | 12 from infra_libs.ts_mon.common import distribution |
| 14 from infra_libs.ts_mon.common import errors | 13 from infra_libs.ts_mon.common import errors |
| 15 from infra_libs.ts_mon.common import interface | 14 from infra_libs.ts_mon.common import interface |
| 16 from infra_libs.ts_mon.common import metric_store | 15 from infra_libs.ts_mon.common import metric_store |
| 17 from infra_libs.ts_mon.common import metrics | 16 from infra_libs.ts_mon.common import metrics |
| 18 from infra_libs.ts_mon.common import targets | 17 from infra_libs.ts_mon.common import targets |
| 19 from infra_libs.ts_mon.common.test import stubs | 18 from infra_libs.ts_mon.common.test import stubs |
| 20 from infra_libs.ts_mon.protos import metrics_pb2 | 19 from infra_libs.ts_mon.protos import metrics_pb2 |
| 21 | 20 |
| 22 | 21 |
| 23 class TestBase(unittest.TestCase): | 22 class TestBase(unittest.TestCase): |
| 24 def setUp(self): | 23 def setUp(self): |
| 24 super(TestBase, self).setUp() |
| 25 target = targets.TaskTarget('test_service', 'test_job', | 25 target = targets.TaskTarget('test_service', 'test_job', |
| 26 'test_region', 'test_host') | 26 'test_region', 'test_host') |
| 27 self.mock_state = interface.State(target=target) | 27 self.mock_state = interface.State(target=target) |
| 28 self.state_patcher = mock.patch('infra_libs.ts_mon.common.interface.state', | 28 self.state_patcher = mock.patch('infra_libs.ts_mon.common.interface.state', |
| 29 new=self.mock_state) | 29 new=self.mock_state) |
| 30 self.state_patcher.start() | 30 self.state_patcher.start() |
| 31 | 31 |
| 32 def tearDown(self): | 32 def tearDown(self): |
| 33 self.state_patcher.stop() | 33 self.state_patcher.stop() |
| 34 super(TestBase, self).tearDown() |
| 34 | 35 |
| 35 | 36 |
| 36 class MetricTest(TestBase): | 37 class MetricTest(TestBase): |
| 37 def test_name_property(self): | 38 def test_name_property(self): |
| 38 m1 = metrics.Metric('/foo', fields={'asdf': 1}) | 39 m1 = metrics.Metric('/foo', fields={'asdf': 1}) |
| 39 self.assertEquals(m1.name, 'foo') | 40 self.assertEquals(m1.name, 'foo') |
| 40 | 41 |
| 41 def test_init_too_may_fields(self): | 42 def test_init_too_may_fields(self): |
| 42 fields = {str(i): str(i) for i in xrange(8)} | 43 fields = {str(i): str(i) for i in xrange(8)} |
| 43 with self.assertRaises(errors.MonitoringTooManyFieldsError) as e: | 44 with self.assertRaises(errors.MonitoringTooManyFieldsError) as e: |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 m.add(25) | 506 m.add(25) |
| 506 p = metrics_pb2.MetricsCollection() | 507 p = metrics_pb2.MetricsCollection() |
| 507 m.serialize_to(p, 1234, (), m.get(), t) | 508 m.serialize_to(p, 1234, (), m.get(), t) |
| 508 self.assertEquals(1234000000, p.data[0].start_timestamp_us) | 509 self.assertEquals(1234000000, p.data[0].start_timestamp_us) |
| 509 | 510 |
| 510 def test_is_cumulative(self): | 511 def test_is_cumulative(self): |
| 511 cd = metrics.CumulativeDistributionMetric('test') | 512 cd = metrics.CumulativeDistributionMetric('test') |
| 512 ncd = metrics.NonCumulativeDistributionMetric('test2') | 513 ncd = metrics.NonCumulativeDistributionMetric('test2') |
| 513 self.assertTrue(cd.is_cumulative()) | 514 self.assertTrue(cd.is_cumulative()) |
| 514 self.assertFalse(ncd.is_cumulative()) | 515 self.assertFalse(ncd.is_cumulative()) |
| OLD | NEW |