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("scripts.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 def test_testing_suite_variable_uses_canonical_values_only(): mod = load_module() variable = mod.testing_suite_variable() canonical_matcher = "|".join(mod.PLATFORM_TEST_SUITE_NAMES) legacy_names = {"bstein-home", "data-prepper", "titan-iac", "pegasus-health"} assert variable["allValue"] == canonical_matcher assert not any(alias in variable["query"] for alias in legacy_names) assert not any(alias in variable["allValue"] for alias in legacy_names) assert [option["value"] for option in variable["options"]] == mod.PLATFORM_TEST_SUITE_NAMES def test_jobs_dashboard_separates_current_gate_health_from_reliability(): mod = load_module() dashboard = mod.build_jobs_dashboard() panels_by_title = {panel["title"]: panel for panel in dashboard["panels"]} assert "Current Gate Health by Suite" in panels_by_title assert "Run Reliability by Suite (24h)" in panels_by_title assert "Run Reliability History by Suite" in panels_by_title assert "Failures by Suite (24h)" not in panels_by_title assert "Success Rate by Suite (24h)" not in panels_by_title current_gate_expr = panels_by_title["Current Gate Health by Suite"]["targets"][0]["expr"] assert 'check)' in current_gate_expr assert 'result=~"ok|passed|success|not_applicable|skipped|na|n/a"' in current_gate_expr reliability_panel = panels_by_title["Run Reliability by Suite (24h)"] reliability_expr = reliability_panel["targets"][0]["expr"] assert "platform_quality_gate_runs_total" in reliability_expr assert "> 0" in reliability_expr assert "- 1" in reliability_expr assert reliability_panel["fieldConfig"]["defaults"]["mappings"] == [ {"type": "value", "options": {"-1": {"text": "no runs"}}} ]