Files

51 lines
1.6 KiB
Python
Raw Permalink Normal View History

"""Tests for the AdvisorComparison Pydantic models and their default wiring."""
from __future__ import annotations
from webapp.models import AdvisorComparison, AdvisorComparisonEntry, ReportData
def test_advisor_comparison_entry_accepts_all_statuses():
for status in ("resolved", "regressed", "still_triggered", "new_metric"):
entry = AdvisorComparisonEntry(
metric="faithfulness",
status=status,
previous_score=0.5,
previous_severity="warning",
current_score=0.9,
current_severity=None,
)
assert entry.status == status
def test_advisor_comparison_entry_rejects_unknown_status():
import pydantic
try:
AdvisorComparisonEntry(metric="faithfulness", status="unknown_status")
raised = False
except pydantic.ValidationError:
raised = True
assert raised
def test_advisor_comparison_defaults():
comparison = AdvisorComparison(
previous_run_id="run-1",
previous_finished_at="2026-01-01T00:00:00+00:00",
)
assert comparison.previous_judge_model == ""
assert comparison.current_judge_model == ""
assert comparison.judge_model_changed is False
assert comparison.entries == []
def test_report_data_defaults_advisor_comparison_to_none():
report = ReportData()
assert report.advisor_comparison is None
def test_report_data_accepts_advisor_comparison():
comparison = AdvisorComparison(previous_run_id="run-1", previous_finished_at="t")
report = ReportData(advisor_comparison=comparison)
assert report.advisor_comparison == comparison