From 1e2b997f2f15cb2ce5895677eb2e1c3c1004a9bb Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 2 Jun 2026 14:24:24 +0000 Subject: [PATCH] =?UTF-8?q?Downloaded=20files=20carry=20evidence=5Fcategor?= =?UTF-8?q?y=20as=20DownloadedFile=20=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/pashub_fetcher/pashub_client.py | 6 +++++ .../tests/test_pashub_client.py | 25 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/backend/pashub_fetcher/pashub_client.py b/backend/pashub_fetcher/pashub_client.py index 9969227b..a6284d27 100644 --- a/backend/pashub_fetcher/pashub_client.py +++ b/backend/pashub_fetcher/pashub_client.py @@ -13,6 +13,12 @@ from utils.logger import setup_logger logger = setup_logger() +class DownloadedFile(NamedTuple): + file_path: str + evidence_category: Optional[str] + created_utc: datetime + + class _EvidenceFileGroups(NamedTuple): core: Dict[CoreFiles, EvidenceFileData] other: List[EvidenceFileData] diff --git a/backend/pashub_fetcher/tests/test_pashub_client.py b/backend/pashub_fetcher/tests/test_pashub_client.py index c6e7b780..f072731b 100644 --- a/backend/pashub_fetcher/tests/test_pashub_client.py +++ b/backend/pashub_fetcher/tests/test_pashub_client.py @@ -5,7 +5,7 @@ from unittest.mock import patch from backend.pashub_fetcher.core_files import CoreFiles from backend.pashub_fetcher.evidence_file_data import EvidenceFileData from backend.pashub_fetcher.evidence_metadata import EvidenceMetadata -from backend.pashub_fetcher.pashub_client import DownloadedFiles, PashubClient +from backend.pashub_fetcher.pashub_client import DownloadedFile, DownloadedFiles, PashubClient def make_metadata() -> EvidenceMetadata: @@ -169,6 +169,29 @@ def test_get_evidence_files_by_job_id_returns_downloaded_files_with_empty_other_ assert result.other == [] +def test_get_evidence_files_by_job_id_core_files_carry_evidence_category() -> None: + # Arrange + client = make_client() + files = [ + make_file( + file_name="MCS_cert.pdf", + evidence_category="MCS Compliance Certificate", + ), + ] + + # Act + with ( + patch.object(client, "_get_evidence_list", return_value=files), + patch.object(client, "_get_evidence_metadata", return_value=make_metadata()), + patch.object(client, "_download_file"), + ): + result = client.get_evidence_files_by_job_id("job-1", include_other=False) + + # Assert + assert len(result.core) == 1 + assert result.core[0].evidence_category == "MCS Compliance Certificate" + + def test_get_evidence_files_by_job_id_downloads_other_files_when_include_other_true() -> None: # Arrange client = make_client()