ariadne/tests/test_hermes_triage_prompt.py

38 lines
1.5 KiB
Python
Raw Normal View History

"""Tests for the frozen Hermes triage prompt and its job scoping."""
from __future__ import annotations
from ariadne.services import hermes_triage_prompt
BUNDLE = {"incident_id": "metis/272", "jenkins": {"job": "metis"}}
def test_demo_job_prompt_permits_the_demo_action() -> None:
prompt = hermes_triage_prompt.build_prompt(
"hermes-triage-demo/12", "hermes-triage-demo", {"incident_id": "hermes-triage-demo/12"}
)
assert "The Jenkins job under analysis is hermes-triage-demo." in prompt
assert "Set human_required to false when hermes-triage-demo is hermes-triage-demo" in prompt
def test_real_job_prompt_forbids_the_demo_classification() -> None:
prompt = hermes_triage_prompt.build_prompt("metis/272", "metis", BUNDLE)
assert "The Jenkins job under analysis is metis." in prompt
assert (
"reserved for the job hermes-triage-demo. When metis is any other job they are forbidden"
in prompt
)
assert "Set human_required to false when metis is hermes-triage-demo" in prompt
def test_bundle_is_appended_compactly() -> None:
prompt = hermes_triage_prompt.build_prompt("metis/272", "metis", BUNDLE)
assert prompt.endswith('Bundle:\n{"incident_id":"metis/272","jenkins":{"job":"metis"}}')
def test_no_placeholders_survive_rendering() -> None:
prompt = hermes_triage_prompt.build_prompt("metis/272", "metis", BUNDLE)
for placeholder in ("__INCIDENT_ID__", "__JOB__", "__DEMO_JOB__", "__BUNDLE__"):
assert placeholder not in prompt