def test_duplicate_register_raises(self): fake_metric = mock.Mock(_name='foo') phake_metric = mock.Mock(_name='foo') interface.register(fake_metric) with self.assertRaises(errors.MonitoringDuplicateRegistrationError): interface.register(phake_metric) self.assertEqual(1, len(interface.state.metrics))
def test_register_unregister(self): fake_metric = mock.Mock() self.assertEqual(0, len(interface.state.metrics)) interface.register(fake_metric) self.assertEqual(1, len(interface.state.metrics)) interface.unregister(fake_metric) self.assertEqual(0, len(interface.state.metrics))
def __init__(self, name, target=None, fields=None): """Create an instance of a Metric. Args: name (str): the file-like name of this metric fields (dict): a set of key-value pairs to be set as default metric fields target (Target): a Target to be used with this metric. This should be specified only rarely; usually the library's default Target will be used (set up by the top-level process). """ self._name = name.lstrip('/') self._values = {} self._target = target fields = fields or {} if len(fields) > 7: raise errors.MonitoringTooManyFieldsError(self._name, fields) self._fields = fields self._normalized_fields = self._normalize_fields(self._fields) self._thread_lock = threading.Lock() interface.register(self)
def test_identical_register(self): fake_metric = mock.Mock(_name='foo') interface.register(fake_metric) interface.register(fake_metric) self.assertEqual(1, len(interface.state.metrics))