test(ariadne): cover triage diagnosis edge cases

This commit is contained in:
codex 2026-05-20 03:39:09 -03:00
parent f42a147391
commit ef29eb1b8f

View File

@ -150,3 +150,118 @@ def test_diagnose_testing_triage_handles_disabled_and_bad_json(monkeypatch) -> N
assert diagnosis["status"] == "ok"
assert "model_json_parse_failed" in diagnosis["unknowns"][0]
def test_latest_testing_triage_diagnosis_decodes_stored_json() -> None:
storage = DummyStorage()
payload = {"kind": "testing_triage_diagnosis", "status": "ok"}
storage.events.append((testing_triage_diagnosis.TRIAGE_DIAGNOSIS_EVENT_TYPE, json.dumps(payload)))
assert testing_triage_diagnosis.latest_testing_triage_diagnosis(storage) == payload # type: ignore[arg-type]
storage.events.append((testing_triage_diagnosis.TRIAGE_DIAGNOSIS_EVENT_TYPE, "not json"))
assert testing_triage_diagnosis.latest_testing_triage_diagnosis(storage) is None # type: ignore[arg-type]
storage.events.append((testing_triage_diagnosis.TRIAGE_DIAGNOSIS_EVENT_TYPE, json.dumps(["not", "a", "dict"])))
assert testing_triage_diagnosis.latest_testing_triage_diagnosis(storage) is None # type: ignore[arg-type]
def test_model_configuration_helpers_normalize_settings(monkeypatch) -> None:
monkeypatch.setattr(
testing_triage_diagnosis,
"settings",
SettingsStub(
testing_triage_model_url=" http://ollama.local/ ",
testing_triage_model="",
testing_triage_model_timeout_sec=0,
),
)
assert testing_triage_diagnosis.model_diagnosis_enabled()
assert testing_triage_diagnosis._model_url() == "http://ollama.local" # noqa: SLF001
assert testing_triage_diagnosis._model_name() == "" # noqa: SLF001
assert testing_triage_diagnosis._model_timeout() == 180.0 # noqa: SLF001
def test_diagnose_testing_triage_handles_model_request_failure(monkeypatch) -> None:
class FailingClient:
def __init__(self, *args, **kwargs) -> None: # type: ignore[no-untyped-def]
return None
def __enter__(self):
return self
def __exit__(self, *args) -> None: # type: ignore[no-untyped-def]
return None
def post(self, url, json=None): # type: ignore[no-untyped-def]
raise RuntimeError("ollama unavailable")
monkeypatch.setattr(testing_triage_diagnosis, "settings", SettingsStub(testing_triage_model_url="http://ollama"))
monkeypatch.setattr(testing_triage_diagnosis.httpx, "Client", FailingClient)
diagnosis = testing_triage_diagnosis.diagnose_testing_triage(
{"generated_at": "evidence-time", "summary": {"status": "warning", "problem_count": 2}}
)
assert diagnosis["status"] == "unavailable"
assert diagnosis["evidence_generated_at"] == "evidence-time"
assert "model_request_failed" in diagnosis["diagnosis"]["root_cause"]
def test_prompt_and_evidence_payload_use_safe_defaults(monkeypatch) -> None:
monkeypatch.setattr(testing_triage_diagnosis, "_MAX_MODEL_EVIDENCE_CHARS", 120)
prompt = testing_triage_diagnosis._diagnosis_prompt( # noqa: SLF001
{
"kind": "testing_triage_bundle",
"summary": "bad summary",
"evidence": {"large": "x" * 300},
"unknowns": "bad unknowns",
}
)
evidence = testing_triage_diagnosis._model_evidence_payload( # noqa: SLF001
{"summary": "bad summary", "evidence": "bad evidence", "unknowns": "bad unknowns"}
)
assert prompt.endswith("[truncated]")
assert evidence["summary"] == {}
assert evidence["evidence"] == {}
assert evidence["unknowns"] == []
def test_diagnosis_from_model_coerces_fallback_values(monkeypatch) -> None:
monkeypatch.setattr(testing_triage_diagnosis, "settings", SettingsStub(testing_triage_model="triage-model"))
diagnosis = testing_triage_diagnosis._diagnosis_from_model( # noqa: SLF001
{
"generated_at": "bundle-time",
"summary": {"status": "ok", "problem_count": 0, "failed_suites": []},
"unknowns": ["existing_unknown"],
},
{
"headline": "",
"root_cause": None,
"confidence": "certain",
"needs_human": "false",
"next_actions": "Verify current dashboard state.",
"evidence_refs": ["suite", "", 7],
},
"raw response",
"parse warning",
)
assert diagnosis["status"] == "ok"
assert diagnosis["model"] == "triage-model"
assert diagnosis["diagnosis"]["headline"] == "Testing triage needs review."
assert diagnosis["diagnosis"]["confidence"] == "low"
assert diagnosis["diagnosis"]["needs_human"] is False
assert diagnosis["diagnosis"]["next_actions"] == ["Verify current dashboard state."]
assert diagnosis["diagnosis"]["evidence_refs"] == ["suite", "7"]
assert diagnosis["unknowns"] == ["existing_unknown", "parse warning"]
def test_default_evidence_refs_include_failed_suites() -> None:
refs = testing_triage_diagnosis._default_evidence_refs( # noqa: SLF001
{"status": "needs_attention", "problem_count": 3, "failed_suites": ["a", "b", "c", "d", "e", "f", "g"]}
)
assert refs[-1] == "summary.failed_suites=a,b,c,d,e,f"