def test_ruleset_matcher_get_service_ruleset_values_labels(monkeypatch, hostname, service_description, expected_result): ts = Scenario() ts.add_host("host1") ts.set_autochecks("host1", [ Service("cpu.load", None, "CPU load", "{}", service_labels=DiscoveredServiceLabels( ServiceLabel(u"os", u"linux"), ServiceLabel(u"abc", u"xä"), ServiceLabel(u"hu", u"ha"), )) ]) ts.add_host("host2") ts.set_autochecks("host2", [ Service("cpu.load", None, "CPU load", "{}", service_labels=DiscoveredServiceLabels()), ]) config_cache = ts.apply(monkeypatch) matcher = config_cache.ruleset_matcher assert list( matcher.get_service_ruleset_values(config_cache.ruleset_match_object_of_service( hostname, service_description), ruleset=service_label_ruleset, is_binary=False)) == expected_result
def test_host_ruleset_match_object_of_service(monkeypatch): ts = Scenario() ts.add_host("xyz") ts.add_host("test-host", tags={"agent": "no-agent"}) ts.set_autochecks("test-host", [ Service("cpu.load", None, "CPU load", "{}", service_labels=DiscoveredServiceLabels(ServiceLabel(u"abc", u"xä"),)) ]) config_cache = ts.apply(monkeypatch) obj = config_cache.ruleset_match_object_of_service("xyz", "bla blä") assert isinstance(obj, RulesetMatchObject) assert obj.to_dict() == { "host_name": "xyz", "service_description": "bla blä", "service_labels": {}, "service_cache_id": ('bla bl\xc3\xa4', None), } obj = config_cache.ruleset_match_object_of_service("test-host", "CPU load") service_labels = {u"abc": u"xä"} assert isinstance(obj, RulesetMatchObject) assert obj.to_dict() == { "host_name": "test-host", "service_description": "CPU load", "service_labels": service_labels, "service_cache_id": ('CPU load', obj._generate_hash(service_labels)), }