Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(746)

Unified Diff: infra_libs/ts_mon/common/test/metric_store_test.py

Issue 2213143002: Add infra_libs as a bootstrap dependency. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Removed the ugly import hack Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698