def test_remove_time_series(self): long_gauge = gauge.LongGauge(Mock(), Mock(), Mock(), [Mock(), Mock()]) with self.assertRaises(ValueError): long_gauge.remove_time_series(None) with self.assertRaises(ValueError): long_gauge.remove_time_series([Mock()]) with self.assertRaises(ValueError): long_gauge.remove_time_series([Mock(), Mock(), Mock()]) with self.assertRaises(ValueError): long_gauge.remove_time_series([Mock(), None]) lv1 = [Mock(), Mock()] long_gauge.get_or_create_time_series(lv1) lv2 = [Mock(), Mock()] long_gauge.get_or_create_time_series(lv2) self.assertEqual(len(long_gauge.points.keys()), 2) # Removing a non-existent point shouldn't fail, or remove anything long_gauge.remove_time_series([Mock(), Mock()]) self.assertEqual(len(long_gauge.points.keys()), 2) long_gauge.remove_time_series(lv1) self.assertEqual(len(long_gauge.points.keys()), 1) [key] = long_gauge.points.keys() self.assertEqual(key, tuple(lv2)) long_gauge.remove_time_series(lv2) self.assertEqual(len(long_gauge.points.keys()), 0)
def test_get_metric(self): name = Mock() description = Mock() unit = Mock() label_keys = [Mock(), Mock] long_gauge = gauge.LongGauge(name, description, unit, label_keys) timestamp = Mock() null_metric = long_gauge.get_metric(timestamp) self.assertIsNone(null_metric) lv1 = [Mock(), Mock()] lv2 = [Mock(), Mock()] point1 = long_gauge.get_or_create_time_series(lv1) point2 = long_gauge.get_or_create_time_series(lv2) point1.set(1) point2.set(2) metric = long_gauge.get_metric(timestamp) self.assertEqual(metric.descriptor, long_gauge.descriptor) self.assertEqual(len(metric.time_series), 2) self.assertEqual(len(metric.time_series[0].points), 1) self.assertEqual(len(metric.time_series[1].points), 1) self.assertIsInstance(metric.time_series[0].points[0].value, value_module.ValueLong) self.assertIsInstance(metric.time_series[1].points[0].value, value_module.ValueLong) self.assertEqual(metric.time_series[0].points[0].value.value, 1) self.assertEqual(metric.time_series[1].points[0].value.value, 2)
def test_get_time_series(self): name = Mock() description = Mock() unit = Mock() label_keys = [Mock(), Mock] long_gauge = gauge.LongGauge(name, description, unit, label_keys) with self.assertRaises(ValueError): long_gauge.get_or_create_time_series(None) with self.assertRaises(ValueError): long_gauge.get_or_create_time_series([Mock()]) with self.assertRaises(ValueError): long_gauge.get_or_create_time_series([Mock(), Mock(), Mock()]) with self.assertRaises(ValueError): long_gauge.get_or_create_time_series([Mock(), None]) label_values = [Mock(), Mock()] point = long_gauge.get_or_create_time_series(label_values) self.assertIsInstance(point, gauge.GaugePointLong) self.assertEqual(point.value, 0) self.assertEqual(len(long_gauge.points.keys()), 1) [key] = long_gauge.points.keys() self.assertEqual(key, tuple(label_values)) point2 = long_gauge.get_or_create_time_series(label_values) self.assertIs(point, point2) self.assertEqual(len(long_gauge.points.keys()), 1)
def test_remove_default_time_series(self): long_gauge = gauge.LongGauge(Mock(), Mock(), Mock(), [Mock(), Mock()]) # Removing the default point before it exists shouldn't fail long_gauge.remove_default_time_series() long_gauge.get_or_create_default_time_series() self.assertEqual(len(long_gauge.points.keys()), 1) long_gauge.remove_default_time_series() self.assertEqual(len(long_gauge.points.keys()), 0)
def test_init(self): name = Mock() description = Mock() unit = Mock() label_keys = [Mock(), Mock] long_gauge = gauge.LongGauge(name, description, unit, label_keys) self.assertEqual(long_gauge.descriptor.name, name) self.assertEqual(long_gauge.descriptor.description, description) self.assertEqual(long_gauge.descriptor.unit, unit) self.assertEqual(long_gauge.descriptor.label_keys, label_keys) self.assertEqual(long_gauge.descriptor.type, metric_descriptor.MetricDescriptorType.GAUGE_INT64)
def test_get_metric_default(self): name = Mock() description = Mock() unit = Mock() label_keys = [Mock(), Mock] long_gauge = gauge.LongGauge(name, description, unit, label_keys) default_point = long_gauge.get_or_create_default_time_series() default_point.set(3) timestamp = Mock() metric = long_gauge.get_metric(timestamp) self.assertEqual(metric.descriptor, long_gauge.descriptor) self.assertEqual(len(metric.time_series), 1) self.assertEqual(len(metric.time_series[0].points), 1) self.assertIsInstance(metric.time_series[0].points[0].value, value_module.ValueLong) self.assertEqual(metric.time_series[0].points[0].value.value, 3)
def test_clear(self): name = Mock() description = Mock() unit = Mock() label_keys = [Mock(), Mock] long_gauge = gauge.LongGauge(name, description, unit, label_keys) label_values = [Mock(), Mock()] point = long_gauge.get_or_create_time_series(label_values) self.assertEqual(len(long_gauge.points.keys()), 1) point.add(1) long_gauge.clear() self.assertDictEqual(long_gauge.points, {}) label_values = [Mock(), Mock()] point2 = long_gauge.get_or_create_time_series(label_values) self.assertEqual(point2.value, 0) self.assertIsNot(point, point2)
def test_get_default_time_series(self): long_gauge = gauge.LongGauge(Mock(), Mock(), Mock(), [Mock(), Mock]) default_point = long_gauge.get_or_create_default_time_series() self.assertIsInstance(default_point, gauge.GaugePointLong) self.assertEqual(default_point.value, 0) self.assertEqual(len(long_gauge.points.keys()), 1)