import importlib.util import pathlib def load_module(): path = pathlib.Path(__file__).resolve().parents[1] / "dashboards_render_atlas.py" spec = importlib.util.spec_from_file_location("dashboards_render_atlas", path) module = importlib.util.module_from_spec(spec) assert spec.loader is not None spec.loader.exec_module(module) return module def test_table_panel_options_and_filterable(): mod = load_module() panel = mod.table_panel( 1, "test", "metric", {"h": 1, "w": 1, "x": 0, "y": 0}, unit="percent", transformations=[{"id": "labelsToFields", "options": {}}], instant=True, options={"showColumnFilters": False}, filterable=False, footer={"show": False, "fields": "", "calcs": []}, format="table", ) assert panel["fieldConfig"]["defaults"]["unit"] == "percent" assert panel["fieldConfig"]["defaults"]["custom"]["filterable"] is False assert panel["options"]["showHeader"] is True assert panel["targets"][0]["format"] == "table" def test_node_filter_and_expr_helpers(): mod = load_module() expr = mod.node_filter("titan-.*") assert "label_replace" in expr cpu_expr = mod.node_cpu_expr("titan-.*") mem_expr = mod.node_mem_expr("titan-.*") assert "node_cpu_seconds_total" in cpu_expr assert "node_memory_MemAvailable_bytes" in mem_expr def test_render_configmap_writes(tmp_path): mod = load_module() mod.DASHBOARD_DIR = tmp_path / "dash" mod.ROOT = tmp_path uid = "atlas-test" info = {"configmap": tmp_path / "cm.yaml"} data = {"title": "Atlas Test"} mod.write_json(uid, data) mod.render_configmap(uid, info) json_path = mod.DASHBOARD_DIR / f"{uid}.json" assert json_path.exists() content = (tmp_path / "cm.yaml").read_text() assert "kind: ConfigMap" in content assert f"{uid}.json" in content