File size: 2,463 Bytes
77700f5 b1eb700 80ae8de b1eb700 77700f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | import sys
from pathlib import Path
from packetcourt.models import AgentReview
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
import app
def test_run_audit_validates_nemotron_dict_into_agent_review(monkeypatch):
monkeypatch.setattr(app, "nemotron_is_configured", lambda: True)
monkeypatch.setattr(
app,
"nemotron_review",
lambda snapshot: {
"status": "COMPLETE",
"priority": "Supplementary wording that should be normalized.",
"evidence_request": "",
"rationale": "All claim evidence paths completed.",
"model": "nvidia/Nemotron-Mini-4B-Instruct",
},
)
result = app.run_audit("SUGAR FREE", "Nutrition per 100g: Total Sugars 0g. Net Weight 200g.")
assert isinstance(result.agent_review, AgentReview)
assert result.agent_review.status == "COMPLETE"
assert result.agent_review.priority == "No additional claim-resolving evidence is required."
def test_nemotron_cannot_invent_required_evidence_outside_bounded_investigation(monkeypatch):
monkeypatch.setattr(app, "nemotron_is_configured", lambda: True)
monkeypatch.setattr(
app,
"nemotron_review",
lambda snapshot: {
"status": "NEEDS_EVIDENCE",
"priority": "Inspect an unrelated expiry date.",
"evidence_request": "Expiry date",
"rationale": "Model requested supplementary evidence.",
"model": "nvidia/Nemotron-Mini-4B-Instruct",
},
)
result = app.run_audit("SUGAR FREE", "Nutrition per 100g: Total Sugars 0g. Net Weight 200g.")
assert result.investigation.missing_evidence == []
assert result.agent_review.status == "COMPLETE"
assert result.agent_review.evidence_request == ""
assert result.agent_review.priority == "No additional claim-resolving evidence is required."
assert "no unresolved evidence" in result.agent_review.rationale.lower()
def test_run_audit_preserves_nemotron_validation_error(monkeypatch):
monkeypatch.setattr(app, "nemotron_is_configured", lambda: True)
monkeypatch.setattr(app, "nemotron_review", lambda snapshot: "not a review object")
result = app.run_audit("SUGAR FREE", "Nutrition per 100g: Total Sugars 0g. Net Weight 200g.")
assert isinstance(result.agent_review, AgentReview)
assert result.agent_review.status == "UNAVAILABLE"
assert "ValidationError" in result.agent_review.rationale
|