Index: infra_libs/ts_mon/common/test/metric_store_test.py |
diff --git a/infra_libs/ts_mon/common/test/metric_store_test.py b/infra_libs/ts_mon/common/test/metric_store_test.py |
deleted file mode 100644 |
index 3fbc82489ad9f00c058649e113dcfa5fde7c41ff..0000000000000000000000000000000000000000 |
--- a/infra_libs/ts_mon/common/test/metric_store_test.py |
+++ /dev/null |
@@ -1,197 +0,0 @@ |
-# Copyright 2015 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import functools |
-import operator |
-import time |
-import unittest |
- |
-import mock |
- |
-from infra_libs.ts_mon.common import interface |
-from infra_libs.ts_mon.common import errors |
-from infra_libs.ts_mon.common import metric_store |
-from infra_libs.ts_mon.common import metrics |
-from infra_libs.ts_mon.common import targets |
-from infra_libs.ts_mon.common.test import stubs |
- |
- |
-class DefaultModifyFnTest(unittest.TestCase): |
- def test_adds(self): |
- fn = metric_store.default_modify_fn('foo') |
- self.assertEquals(5, fn(2, 3)) |
- self.assertEquals(5, fn(3, 2)) |
- |
- def test_negative(self): |
- fn = metric_store.default_modify_fn('foo') |
- with self.assertRaises(errors.MonitoringDecreasingValueError) as cm: |
- fn(2, -1) |
- self.assertIn('"foo"', str(cm.exception)) |
- |
- |
-class MetricFieldsValuesTest(unittest.TestCase): |
- def test_iteritems(self): |
- mfv = metric_store.MetricFieldsValues() |
- fields = (('field', 'value'),) |
- mfv.set_value(fields, 84) |
- self.assertEqual([(fields, 84)], list(mfv.iteritems())) |
- |
- |
-class MetricStoreTestBase(object): |
- """Abstract base class for testing MetricStore implementations. |
- |
- This class doesn't inherit from unittest.TestCase to prevent it from being |
- run automatically by expect_tests. |
- |
- Your subclass should inherit from this and unittest.TestCase, and set |
- METRIC_STORE_CLASS to the implementation you want to test. See |
- InProcessMetricStoreTest in this file for an example. |
- """ |
- |
- METRIC_STORE_CLASS = None |
- |
- def setUp(self): |
- super(MetricStoreTestBase, self).setUp() |
- |
- self.mock_time = mock.create_autospec(time.time, spec_set=True) |
- self.mock_time.return_value = 1234 |
- |
- target = targets.TaskTarget( |
- 'test_service', 'test_job', 'test_region', 'test_host') |
- self.state = interface.State(store_ctor=self.create_store, target=target) |
- mock.patch('infra_libs.ts_mon.common.interface.state', |
- new=self.state).start() |
- |
- self.store = self.state.store |
- |
- self.metric = metrics.Metric('foo') |
- |
- def create_store(self, *args, **kwargs): |
- kwargs['time_fn'] = self.mock_time |
- return self.METRIC_STORE_CLASS(*args, **kwargs) |
- |
- def tearDown(self): |
- super(MetricStoreTestBase, self).tearDown() |
- |
- mock.patch.stopall() |
- |
- def test_sets_start_time(self): |
- self.metric._start_time = None |
- self.mock_time.return_value = 1234 |
- |
- self.store.set('foo', (('field', 'value'),), None, 42) |
- self.store.set('foo', (('field', 'value2'),), None, 43) |
- |
- all_metrics = list(self.store.get_all()) |
- self.assertEqual(1, len(all_metrics)) |
- self.assertEqual('foo', all_metrics[0][1].name) |
- self.assertEqual(1234, all_metrics[0][2]) |
- |
- self.mock_time.assert_called_once_with() |
- |
- def test_uses_start_time_from_metric(self): |
- self.metric._start_time = 5678 |
- |
- self.store.set('foo', (('field', 'value'),), None, 42) |
- self.store.set('foo', (('field', 'value2'),), None, 43) |
- |
- all_metrics = list(self.store.get_all()) |
- self.assertEqual(1, len(all_metrics)) |
- self.assertEqual('foo', all_metrics[0][1].name) |
- self.assertEqual(5678, all_metrics[0][2]) |
- |
- self.assertFalse(self.mock_time.called) |
- |
- def test_get(self): |
- fields1 = (('field', 'value'),) |
- fields2 = (('field', 'value2'),) |
- fields3 = (('field', 'value3'),) |
- target_fields1 = {'region': 'rrr'} |
- target_fields2 = {'region': 'rrr', 'hostname': 'hhh'} |
- |
- self.store.set('foo', fields1, None, 42) |
- self.store.set('foo', fields2, None, 43) |
- self.store.set('foo', fields1, target_fields1, 24) |
- self.store.set('foo', fields2, target_fields2, 34) |
- |
- self.assertEquals(42, self.store.get('foo', fields1, None)) |
- self.assertEquals(43, self.store.get('foo', fields2, None)) |
- self.assertEquals(24, self.store.get('foo', fields1, target_fields1)) |
- self.assertEquals(34, self.store.get('foo', fields2, target_fields2)) |
- |
- self.assertIsNone(self.store.get('foo', fields3, None)) |
- self.assertIsNone(self.store.get('foo', (), None)) |
- self.assertIsNone(self.store.get('foo', fields1, target_fields2)) |
- self.assertEquals(44, self.store.get('foo', fields3, None, default=44)) |
- |
- self.assertIsNone(self.store.get('bar', (), None)) |
- |
- def test_iter_field_values(self): |
- fields1 = (('field', 'value'),) |
- fields2 = (('field', 'value2'),) |
- target_fields1 = {'region': 'rrr'} |
- |
- self.store.set('foo', fields1, None, 42) |
- self.store.set('foo', fields2, None, 43) |
- self.store.set('foo', fields2, target_fields1, 44) |
- |
- field_values = list(self.store.iter_field_values('foo')) |
- self.assertEquals([ |
- ((('field', 'value'),), 42), |
- ((('field', 'value2'),), 43), |
- ((('field', 'value2'),), 44), |
- ], sorted(field_values)) |
- |
- def test_set_enforce_ge(self): |
- self.store.set('foo', (('field', 'value'),), None, 42, enforce_ge=True) |
- self.store.set('foo', (('field', 'value'),), None, 43, enforce_ge=True) |
- |
- with self.assertRaises(errors.MonitoringDecreasingValueError): |
- self.store.set('foo', (('field', 'value'),), None, 42, enforce_ge=True) |
- |
- def test_incr(self): |
- self.store.set('foo', (('field', 'value'),), None, 42) |
- self.store.incr('foo', (('field', 'value'),), None, 4) |
- |
- self.assertEquals(46, self.store.get('foo', (('field', 'value'),), None)) |
- |
- with self.assertRaises(errors.MonitoringDecreasingValueError): |
- self.store.incr('foo', (('field', 'value'),), None, -1) |
- |
- def test_incr_modify_fn(self): |
- def spec_fn(n, i): # pragma: no cover |
- return n+i |
- modify_fn = mock.create_autospec(spec_fn, spec_set=True) |
- modify_fn.return_value = 7 |
- |
- self.store.set('foo', (('field', 'value'),), None, 42) |
- self.store.incr('foo', (('field', 'value'),), None, 3, modify_fn=modify_fn) |
- |
- self.assertEquals(7, self.store.get('foo', (('field', 'value'),), None)) |
- modify_fn.assert_called_once_with(42, 3) |
- |
- def test_reset_for_unittest(self): |
- self.store.set('foo', (('field', 'value'),), None, 42) |
- self.store.reset_for_unittest() |
- self.assertIsNone(self.store.get('foo', (('field', 'value'),), None)) |
- |
- def test_reset_for_unittest_name(self): |
- self.store.set('foo', (('field', 'value'),), None, 42) |
- self.store.reset_for_unittest(name='bar') |
- self.assertEquals(42, self.store.get('foo', (('field', 'value'),), None)) |
- |
- self.store.reset_for_unittest(name='foo') |
- self.assertIsNone(self.store.get('foo', (('field', 'value'),), None)) |
- |
- def test_unregister_metric(self): |
- fields = (('field', 'value'),) |
- self.store.set('foo', fields, None, 42) # Registered in setUp(). |
- self.store.set('bar', fields, None, 24) # Unregistered. |
- all_metrics = list(self.store.get_all()) |
- self.assertEqual(1, len(all_metrics)) |
- self.assertEqual('foo', all_metrics[0][1].name) |
- |
- |
-class InProcessMetricStoreTest(MetricStoreTestBase, unittest.TestCase): |
- METRIC_STORE_CLASS = metric_store.InProcessMetricStore |