"""Tests that an issue attributes its finding to whoever actually made it.""" from __future__ import annotations from ariadne.services import hermes_incident_body as body from ariadne.services import hermes_incident_issue as module def test_body_does_not_claim_a_diagnosis_that_never_happened() -> None: """A hung build is escalated without any model call. Saying it came "from a Hermes Agent diagnosis" would misattribute a direct observation to a model conclusion. """ context = module.issue_context( {"incident_id": "metis/272", "job": "metis", "build_number": 272}, { "bundle": { "jenkins": { "url": "https://ci.example/job/metis/272/", "console_failures": [], "console_tail": "Build metis #272 has been running for 75.0 minutes.", } }, "outcome": None, "authorize_reason": "hung_build", "run_id": None, }, ) rendered = body.issue_body(context) assert "No Hermes diagnosis was requested" in rendered assert "from a Hermes Agent diagnosis" not in rendered assert "has been running for 75.0 minutes" in rendered def test_body_keeps_the_hermes_attribution_when_a_run_happened() -> None: context = module.issue_context( {"incident_id": "metis/272", "job": "metis", "build_number": 272}, {"bundle": {}, "outcome": None, "authorize_reason": "x", "run_id": "run_abc"}, ) rendered = body.issue_body(context) assert "run `run_abc`" in rendered assert "No Hermes diagnosis was requested" not in rendered def test_observation_is_omitted_when_a_diagnosis_cited_facts() -> None: """Console text is a fallback, not a duplicate of a real diagnosis.""" jenkins = {"console_failures": [{"text": "boom"}], "console_tail": "tail text"} assert module._observation(jenkins) == "" assert module._observation(None) == "" assert module._observation({"console_tail": " only tail "}) == "only tail"