mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-19 17:03:02 +00:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
"""The Download Package plan (ADR-0060) — pure layout of the ZIP from resolved
|
|
documents: one folder per property, latest file of each Document Type,
|
|
null-Document-Type rows skipped and reported."""
|
|
|
|
from datetime import datetime, timezone
|
|
|
|
from domain.bulk_document_download.package_plan import (
|
|
ResolvedDocument,
|
|
plan_download_package,
|
|
)
|
|
|
|
|
|
def _doc(
|
|
*,
|
|
landlord_property_id: str = "LP1",
|
|
address: str = "12 Oak Street",
|
|
document_type: str = "site_note",
|
|
s3_key: str = "a.pdf",
|
|
uploaded_at: datetime = datetime(2026, 1, 1, tzinfo=timezone.utc),
|
|
) -> ResolvedDocument:
|
|
return ResolvedDocument(
|
|
landlord_property_id=landlord_property_id,
|
|
address=address,
|
|
document_type=document_type,
|
|
s3_bucket="src-bucket",
|
|
s3_key=s3_key,
|
|
uploaded_at=uploaded_at,
|
|
)
|
|
|
|
|
|
def test_keeps_only_the_latest_file_of_a_document_type_in_the_property_folder() -> None:
|
|
# Arrange — two site_note files for the same property, uploaded at
|
|
# different times; only the newest should be packaged.
|
|
older = _doc(
|
|
s3_key="old.pdf", uploaded_at=datetime(2026, 1, 1, tzinfo=timezone.utc)
|
|
)
|
|
newer = _doc(
|
|
s3_key="new.pdf", uploaded_at=datetime(2026, 6, 1, tzinfo=timezone.utc)
|
|
)
|
|
|
|
# Act
|
|
plan = plan_download_package([older, newer])
|
|
|
|
# Assert — one entry, the newer file, foldered under the property.
|
|
assert len(plan.entries) == 1
|
|
entry = plan.entries[0]
|
|
assert entry.s3_key == "new.pdf"
|
|
assert entry.zip_path.startswith("12 Oak Street (LP1)/")
|