Fetch every evidence page when a job has more files than one page holds 🟥

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Roth 2026-07-28 10:06:00 +00:00
parent 035d2f5136
commit 5a85403c3d

View file

@ -380,18 +380,30 @@ def test_get_evidence_list_requests_a_single_large_page() -> None:
}
def test_get_evidence_list_raises_when_response_is_truncated() -> None:
# Arrange
def test_get_evidence_list_fetches_subsequent_pages_until_total_reached() -> None:
# Arrange — 108 files split across two pages of 100
client = make_client()
payload = {
first_page = {
"results": [make_evidence_item(f"id-{i}") for i in range(100)],
"totalItemCount": 250,
"totalItemCount": 108,
}
client.session.get = MagicMock(return_value=make_response(payload=payload))
second_page = {
"results": [make_evidence_item(f"id-{i}") for i in range(100, 108)],
"totalItemCount": 108,
}
client.session.get = MagicMock(
side_effect=[
make_response(payload=first_page),
make_response(payload=second_page),
]
)
# Act / Assert
with pytest.raises(TruncatedEvidenceListError, match=r"100 of 250"):
client._get_evidence_list("job-1")
# Act
result = client._get_evidence_list("job-1")
# Assert
assert [f.file_id for f in result] == [f"id-{i}" for i in range(108)]
assert [c.kwargs["params"]["pageIndex"] for c in client.session.get.call_args_list] == [0, 1]
def test_get_evidence_list_returns_all_files_when_count_matches_total() -> None: