def test_metric_data_creates_statistic_on_add_value(self): metric = MetricDataStatistic() self.assertFalse(metric.statistics) metric.add_value(10) self.assertTrue(metric.statistics) assert_statistics(metric.statistics, min=10, max=10, sum=10, sample_count=1)
def test_build_map_with_statistics(self): dimensions1 = { "Dimension1": 20, "Dimension2": 30, "Host": "localhost" } metric = MetricDataStatistic("test_metric", dimensions=dimensions1) metric.add_value(10) metric.add_value(20) metric.add_value(40) map = {} prefix = "metric_prefix" self.builder._add_values(metric, map, prefix) self.assertEquals(10, map[prefix + QuerystringBuilder._STAT_MIN]) self.assertEquals(40, map[prefix + QuerystringBuilder._STAT_MAX]) self.assertEquals(70, map[prefix + QuerystringBuilder._STAT_SUM]) self.assertEquals(3, map[prefix + QuerystringBuilder._STAT_SAMPLE])
def test_metric_data_calculates_statistic_on_add_value(self): metric = MetricDataStatistic() metric.add_value(10) metric.add_value(-20) metric.add_value(30) assert_statistics(metric.statistics, min=-20, max=30, sum=20, sample_count=3)
def test_build_querystring_with_statistics(self): dimensions = { "Dimension1": 20, "Dimension2": 30, "Host": "localhost" } metric = MetricDataStatistic("test_metric", dimensions=dimensions) metric.add_value(10) metric.add_value(-20) metric.add_value(50) expected_map = get_canonical_map() expected_map.update(self.builder._build_metric_map([metric])) querystring = self.builder.build_querystring([metric], get_canonical_map()) self.assertTrue(QuerystringBuilder._STAT_MAX +"=50" in querystring) self.assertTrue(QuerystringBuilder._STAT_MIN +"=-20" in querystring) self.assertTrue(QuerystringBuilder._STAT_SUM +"=40" in querystring) self.assertTrue(QuerystringBuilder._STAT_SAMPLE +"=3" in querystring)
def test_client_raise_exception_on_service_unavailable_error(self): metric = MetricDataStatistic("metric_name", namespace="namespace") metric.add_value(10) self.server.set_expected_response("Service Unavailable", 503) self.assert_no_retry_on_error_request("namespace", [metric])