fc / tests /ci /unit /test_case_binding_reminder_bridge.py
jun2024's picture
Upload 2241 files
b4f2238 verified
Raw History Blame Contribute Delete
2.19 kB
"""Regression tests for case-binding reminder bridge behavior."""
from __future__ import annotations
from datetime import UTC, datetime, timedelta
from typing import Any
import pytest
from apps.document_recognition.services.case_binding_service import CaseBindingService
from apps.document_recognition.services.data_classes import DocumentType
class _CaseServiceSpy:
def __init__(self, update_result: bool = True) -> None:
self.update_result = update_result
self.calls: list[dict[str, Any]] = []
def update_case_log_reminder_internal(
self, *, case_log_id: int, reminder_time: datetime, reminder_type: str
) -> bool:
self.calls.append(
{
"case_log_id": case_log_id,
"reminder_time": reminder_time,
"reminder_type": reminder_type,
}
)
return self.update_result
@pytest.mark.parametrize(
("document_type", "expected_reminder_type"),
[
(DocumentType.SUMMONS, "hearing"),
(DocumentType.EXECUTION_RULING, "asset_preservation_expires"),
(DocumentType.OTHER, "other"),
],
)
def test_update_log_reminder_delegates_with_expected_type(
document_type: DocumentType,
expected_reminder_type: str,
) -> None:
spy = _CaseServiceSpy(update_result=True)
service = CaseBindingService(case_service=spy)
reminder_time = datetime.now(tz=UTC) + timedelta(days=1)
service._update_log_reminder(case_log_id=42, reminder_time=reminder_time, document_type=document_type)
assert len(spy.calls) == 1
assert spy.calls[0]["case_log_id"] == 42
assert spy.calls[0]["reminder_time"] == reminder_time
assert spy.calls[0]["reminder_type"] == expected_reminder_type
def test_update_log_reminder_keeps_flow_when_case_service_returns_false() -> None:
spy = _CaseServiceSpy(update_result=False)
service = CaseBindingService(case_service=spy)
reminder_time = datetime.now(tz=UTC) + timedelta(days=1)
service._update_log_reminder(case_log_id=7, reminder_time=reminder_time, document_type=DocumentType.SUMMONS)
assert len(spy.calls) == 1
assert spy.calls[0]["reminder_type"] == "hearing"