def test_get_node_services(monkeypatch: MonkeyPatch) -> None: services = { discovery_status: Service( CheckPluginName(f"plugin_{discovery_status}"), None, "description", {}, ) for discovery_status in ( "old", "vanished", "new", ) } monkeypatch.setattr( _discovered_services, "_load_existing_services", lambda *args, **kwargs: [ services["old"], services["vanished"], ], ) monkeypatch.setattr( _discovered_services, "_discover_services", lambda *args, **kwargs: [ services["old"], services["new"], ], ) assert discovery._get_node_services( "horst", None, ParsedSectionsBroker({}), discovery.DiscoveryParameters( on_error="raise", load_labels=True, save_labels=True, only_host_labels=False, ), lambda hn, _svcdescr: hn, ) == {(service.check_plugin_name, None): ( discovery_status, service, ["horst"], ) for discovery_status, service in services.items()}
]) DiscoveryTestCase = NamedTuple("DiscoveryTestCase", [ ("parameters", discovery.DiscoveryParameters), ("expected_services", Set[Tuple[CheckPluginName, str]]), ("on_realhost", ExpectedDiscoveryResultRealHost), ("on_cluster", ExpectedDiscoveryResultCluster), ]) _discovery_test_cases = [ # do discovery: only_new == True # discover on host: mode != "remove" DiscoveryTestCase( parameters=discovery.DiscoveryParameters( on_error="raise", load_labels=True, save_labels=True, only_host_labels=False, ), expected_services={ (CheckPluginName('df'), '/boot/test-efi'), (CheckPluginName('df'), '/opt/omd/sites/test-heute/tmp'), }, on_realhost=ExpectedDiscoveryResultRealHost( expected_vanished_host_labels=[ HostLabel('existing_label', 'bar', SectionName('foo')), HostLabel('another_label', 'true', SectionName('labels')), ], expected_old_host_labels=[], expected_new_host_labels=[ HostLabel('cmk/check_mk_server', 'yes', SectionName('labels')), ],