diff --git a/backend/pashub_fetcher/pashub_client.py b/backend/pashub_fetcher/pashub_client.py index 024da8464..11cf403c7 100644 --- a/backend/pashub_fetcher/pashub_client.py +++ b/backend/pashub_fetcher/pashub_client.py @@ -41,6 +41,10 @@ class UnauthorizedError(Exception): pass +class TruncatedEvidenceListError(Exception): + pass + + class PashubClient: def __init__(self, token: str): diff --git a/backend/pashub_fetcher/tests/test_pashub_client.py b/backend/pashub_fetcher/tests/test_pashub_client.py index 79257bf58..885b4cc3b 100644 --- a/backend/pashub_fetcher/tests/test_pashub_client.py +++ b/backend/pashub_fetcher/tests/test_pashub_client.py @@ -12,6 +12,7 @@ from backend.pashub_fetcher.pashub_client import ( DownloadedFiles, PashubClient, RdSapSummary, + TruncatedEvidenceListError, UnauthorizedError, ) @@ -377,3 +378,17 @@ def test_get_evidence_list_requests_a_single_large_page() -> None: "pageIndex": 0, "pageSize": 100, } + + +def test_get_evidence_list_raises_when_response_is_truncated() -> None: + # Arrange + client = make_client() + payload = { + "results": [make_evidence_item(f"id-{i}") for i in range(100)], + "totalItemCount": 250, + } + client.session.get = MagicMock(return_value=make_response(payload=payload)) + + # Act / Assert + with pytest.raises(TruncatedEvidenceListError, match=r"100 of 250"): + client._get_evidence_list("job-1")