from pipelines.orm.data_science_dev.congress import BillText, BillTextSummary def test_default_summary_prefers_primary_summary() -> None: primary_summary = BillTextSummary(id=1, bill_text_id=10, summary="primary") latest_summary = BillTextSummary(id=2, bill_text_id=10, summary="latest") bill_text = BillText( id=10, bill_id=5, version_code="ih", summaries=[latest_summary], primary_summary=primary_summary, ) assert bill_text.default_summary() is primary_summary def test_default_summary_falls_back_to_latest_summary() -> None: latest_summary = BillTextSummary(id=2, bill_text_id=10, summary="latest") older_summary = BillTextSummary(id=1, bill_text_id=10, summary="older") bill_text = BillText( id=10, bill_id=5, version_code="ih", summaries=[latest_summary, older_summary], ) assert bill_text.latest_summary() is latest_summary assert bill_text.default_summary() is latest_summary def test_default_summary_is_none_without_summaries() -> None: bill_text = BillText(id=10, bill_id=5, version_code="ih") assert bill_text.latest_summary() is None assert bill_text.default_summary() is None