def test_build_similar_elements_msg(self, aggregator): check = AgentCheck() check.gauge('test.another_similar_metric', 0) check.gauge('test.very_different_metric', 0) check.gauge('test.most_similar_metric', 0) check.gauge('test.very_very_different', 0) expected_metric = MetricStub("test.similar_metric", None, None, None, None) actual_msg = similar.build_similar_elements_msg( expected_metric, aggregator._metrics) expected_msg = ''' Expected: MetricStub(name='test.similar_metric', type=None, value=None, tags=None, hostname=None) Similar submitted: Score Most similar 0.88 MetricStub(name='test.most_similar_metric', type=0, value=0.0, tags=[], hostname='') 0.83 MetricStub(name='test.another_similar_metric', type=0, value=0.0, tags=[], hostname='') 0.62 MetricStub(name='test.very_different_metric', type=0, value=0.0, tags=[], hostname='') 0.42 MetricStub(name='test.very_very_different', type=0, value=0.0, tags=[], hostname='') ''' assert expected_msg.strip() == actual_msg.strip( ), "Actual message:\n" + actual_msg
def _assert(condition, msg, expected_stub, submitted_elements): new_msg = msg if not condition: # It's costly to build the message with similar metrics, so it's built only on failure. new_msg = "{}\n{}".format( msg, build_similar_elements_msg(expected_stub, submitted_elements)) assert condition, new_msg
def test_build_similar_elements_msg(self, aggregator): check = AgentCheck() check.gauge('test.another_similar_metric', 0) check.gauge('test.very_different_metric', 0) check.gauge('test.most_similar_metric', 0) check.gauge('test.very_very_different', 0) expected_metric = MetricStub("test.similar_metric", None, None, None, None, None) actual_msg = similar.build_similar_elements_msg( expected_metric, aggregator._metrics).strip() expected_msg = ''' Expected: MetricStub(name='test.similar_metric', type=None, value=None, tags=None, hostname=None, device=None, flush_first_value=None) Similar submitted: Score Most similar 0.88 MetricStub(name='test.most_similar_metric', type=0, value=0.0, tags=[], hostname='', device=None, flush_first_value=False) 0.83 MetricStub(name='test.another_similar_metric', type=0, value=0.0, tags=[], hostname='', device=None, flush_first_value=False) 0.62 MetricStub(name='test.very_different_metric', type=0, value=0.0, tags=[], hostname='', device=None, flush_first_value=False) 0.42 MetricStub(name='test.very_very_different', type=0, value=0.0, tags=[], hostname='', device=None, flush_first_value=False) '''.strip() # noqa: E501 delta = difflib.ndiff([expected_msg], [actual_msg]) assert expected_msg == actual_msg, delta