def test_diagnostics_element_local_files(): diagnostics_element = diagnostics.LocalFilesDiagnosticsElement() assert diagnostics_element.ident == "local_files" assert diagnostics_element.title == "Local Files" assert diagnostics_element.description == ( "List of installed, unpacked, optional files below $OMD_ROOT/local. " "This also includes information about installed MKPs.")
def test_diagnostics_element_local_files_content(tmp_path, _collectors): diagnostics_element = diagnostics.LocalFilesDiagnosticsElement() def create_test_package(name): check_dir = cmk.utils.paths.local_checks_dir check_dir.mkdir(parents=True, exist_ok=True) with check_dir.joinpath(name).open("w", encoding="utf-8") as f: f.write("test-check\n") package_info = packaging.get_initial_package_info(name) package_info["files"] = { "checks": [name], } packaging.create(package_info) packaging.package_dir().mkdir(parents=True, exist_ok=True) name = "test-package" create_test_package(name) tmppath = Path(tmp_path).joinpath("tmp") filepath = next(diagnostics_element.add_or_get_files(tmppath, _collectors)) assert isinstance(filepath, Path) assert filepath == tmppath.joinpath("local_files.json") info_keys = [ "installed", "unpackaged", "parts", "optional_packages", "disabled_packages", ] content = json.loads(filepath.open().read()) assert sorted(content.keys()) == sorted(info_keys) installed_keys = [name] assert sorted(content["installed"].keys()) == sorted(installed_keys) assert content["installed"][name]["files"] == {"checks": [name]} unpackaged_keys = [ "agent_based", "agents", "alert_handlers", "bin", "checkman", "checks", "doc", "ec_rule_packs", "inventory", "lib", "locales", "mibs", "notifications", "pnp-templates", "web", ] assert sorted(content["unpackaged"].keys()) == sorted(unpackaged_keys) for key in unpackaged_keys: assert content["unpackaged"][key] == [] parts_keys = [ "agent_based", "agents", "alert_handlers", "bin", "checkman", "checks", "doc", "ec_rule_packs", "inventory", "lib", "locales", "mibs", "notifications", "pnp-templates", "web", ] assert sorted(content["parts"].keys()) == sorted(parts_keys) part_keys = [ "files", "path", "permissions", "title", ] for key in parts_keys: assert sorted(content["parts"][key].keys()) == sorted(part_keys) if key == "checks": assert content["parts"][key]["files"] == [name] assert content["parts"][key]["permissions"] == [420] else: assert content["parts"][key]["files"] == [] assert content["parts"][key]["permissions"] == [] assert content["optional_packages"] == {} shutil.rmtree(str(packaging.package_dir()))