Source code for striemann.test.expectsmatcher

"""An expects matcher for asserting metrics are recorded.

https://pypi.python.org/pypi/expects
"""

__all__ = ["contain_metric"]


from expects.matchers import Matcher
from .fakes import metric_id


[docs]class contain_metric(Matcher): def __init__(self, service_name, tags=[], value=None, **kwargs): self.value = value self.id = metric_id(service_name, tags, kwargs) def _match(self, subject): if self.value is not None: reason_suffix = " with id {} and value {}".format(self.id, self.value) else: reason_suffix = " with id {}".format(self.id) for id, value in subject: if id == self.id and (value == self.value or self.value is None): return True, ["metric found" + reason_suffix] return False, ["metric not found" + reason_suffix]