def _set_and_send_value(self, value, fields): """Called by subclasses to set a new value for this metric. Args: value (see concrete class): the value of the metric to be set fields (dict): additional metric fields to complement those on self """ self._values[self._normalize_fields(fields)] = value interface.send(self)
def test_send_manual(self): interface.state.flush_mode = 'manual' interface.state.global_monitor = stubs.MockMonitor() fake_metric = mock.Mock() fake_metric.serialize_to = mock.Mock() interface.send(fake_metric) self.assertFalse(interface.state.global_monitor.send.called) self.assertFalse(fake_metric.serialize_to.called)
def test_send(self): interface.state.flush_mode = 'all' interface.state.global_monitor = stubs.MockMonitor() # pylint: disable=unused-argument def serialize_to(pb, default_target=None, loop_action=None): pb.data.add().name = 'foo' fake_metric = mock.Mock() fake_metric.serialize_to = mock.Mock(side_effect=serialize_to) interface.send(fake_metric) interface.state.global_monitor.send.assert_called_once() proto = interface.state.global_monitor.send.call_args[0][0] self.assertEqual(1, len(proto.data)) self.assertEqual('foo', proto.data[0].name)
def test_send_manual_works(self): self.assertIsNone(interface.state.global_monitor) interface.state.flush_mode = 'manual' interface.send(mock.MagicMock())
def test_send_all_raises(self): self.assertIsNone(interface.state.global_monitor) interface.state.flush_mode = 'all' with self.assertRaises(errors.MonitoringNoConfiguredMonitorError): interface.send(mock.MagicMock())