from datetime import datetime from recap.models import Citation, Event, Patient def test_citation_roundtrip(): c = Citation(source_id="lab_2022-03-14.pdf", page=2, snippet="Cr 1.4 mg/dL") d = c.model_dump() assert d["source_id"] == "lab_2022-03-14.pdf" assert d["page"] == 2 def test_event_orderable_by_date(): a = Event( id="a", date=datetime(2022, 3, 14), category="lab", title="Cr 1.4", source="lab_2022-03-14.pdf", ) b = Event( id="b", date=datetime(2023, 1, 1), category="visit", title="Nephrology", source="visit_2023-01-01.pdf", ) assert sorted([b, a], key=lambda e: e.date) == [a, b] def test_patient_holds_events(): p = Patient(id="sarah", display_name="Sarah, 67", events=[]) assert p.id == "sarah" assert len(p.events) == 0