File size: 2,379 Bytes
b4f2238 | 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 64 65 66 67 68 69 70 71 72 73 74 75 76 | """Unit tests for case_contract_export_bridge."""
from __future__ import annotations
from unittest.mock import MagicMock, patch
from apps.cases.services.case.case_contract_export_bridge import (
collect_contract_file_paths_for_case_export,
get_case_admin_contract_export_prefetches,
get_case_admin_contract_file_prefetches,
serialize_contract_for_case_export,
)
def test_get_case_admin_contract_export_prefetches_returns_nonempty_tuple() -> None:
result = get_case_admin_contract_export_prefetches()
assert isinstance(result, tuple)
assert len(result) > 0
def test_get_case_admin_contract_file_prefetches_returns_nonempty_tuple() -> None:
result = get_case_admin_contract_file_prefetches()
assert isinstance(result, tuple)
assert len(result) > 0
def test_collect_contract_file_paths_for_case_export_collects_all_paths() -> None:
material = MagicMock()
material.file_path = "material.pdf"
identity_doc = MagicMock()
identity_doc.file_path = "id.pdf"
clue_attachment = MagicMock()
clue_attachment.file_path = "clue.pdf"
clue = MagicMock()
clue.attachments.all.return_value = [clue_attachment]
client = MagicMock()
client.identity_docs.all.return_value = [identity_doc]
client.property_clues.all.return_value = [clue]
party = MagicMock()
party.client = client
contract = MagicMock()
contract.finalized_materials.all.return_value = [material]
contract.contract_parties.all.return_value = [party]
collected: list[str] = []
collect_contract_file_paths_for_case_export(contract, collected.append)
assert "material.pdf" in collected
assert "id.pdf" in collected
assert "clue.pdf" in collected
def test_serialize_contract_for_case_export_calls_serializer() -> None:
contract = MagicMock()
expected = {"id": 1, "name": "test"}
with (
patch(
"apps.cases.services.case.case_export_serializer_service.serialize_case_obj"
) as mock_case_ser,
patch(
"apps.contracts.services.contract.integrations.serialize_contract_obj"
) as mock_contract_ser,
):
mock_contract_ser.return_value = expected
result = serialize_contract_for_case_export(contract)
mock_contract_ser.assert_called_once_with(contract, case_serializer=mock_case_ser)
assert result == expected
|