Model/tests/repositories/property
Khalim Conn-Kowlessar 91db972d48 Bulk download: readable email, deal-name folders, visible worker logs
First successful live run surfaced three issues:

1. Email looked rubbish (a giant raw presigned URL). Now sends a proper HTML
   email with a 'Download documents' button plus a plain-text fallback, and a
   summary (N documents across M properties, expiry). Email delivery is now
   best-effort: a transport failure no longer loses an already-built package
   (the link is still on sub_task.outputs), and the SMTP connect has a 30s
   timeout so an unreachable SES endpoint fails fast instead of hanging to the
   900s Lambda timeout.

2. Every folder was 'address unavailable (...)': the resolver read property.address,
   but these are HubSpot deals with no property row. It now uses the deal's
   dealname from hubspot_deal_data.

3. No logs / no idea why a run took ~9 minutes: the worker's INFO logs were
   dropped (Lambda root logger defaults to WARNING). The handler now raises the
   level, and the orchestrator logs per-phase timing and volume (gather+plan,
   packaged N files / X MB, upload, email, total) so the slow phase is visible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 15:02:38 +00:00
..
__init__.py feat(property): Property aggregate + PropertyRepository (#1132) 2026-05-30 19:39:54 +00:00
test_in_memory_property_overrides_reader.py Hold one DB connection per modelling_e2e invocation 2026-06-24 16:58:21 +00:00
test_landlord_address_resolver.py Bulk download: readable email, deal-name folders, visible worker logs 2026-07-08 15:02:38 +00:00
test_landlord_override_overlays.py Treat a same-family fuel refinement as consistent, not a mismatch 🟥 2026-06-30 17:17:04 +00:00
test_override_backed_prediction_attributes_reader.py Resolve a Property's prediction attributes from landlord overrides in gov-code space 🟩 2026-06-16 15:18:44 +00:00
test_override_component_consistency.py Silence untyped SAEnum.enums access in the consistency guard 🟪 2026-06-19 18:19:32 +00:00
test_property_override_postgres_repository.py test(address2uprn): cover ambiguity withholding + override dedup; add ADR-0057 2026-07-07 15:21:04 +00:00
test_property_overrides_postgres_reader.py perf(modelling_e2e): bulk reads and batch writes to cut RDS load 2026-06-24 18:43:42 +00:00
test_property_postgres_overlay_hydration.py Hydrate landlord-override overlays onto the Property from property_overrides 🟩 2026-06-16 17:29:31 +00:00
test_property_repository.py feat(modelling): mark a Property as run via has_recommendations + updated_at 2026-06-16 23:34:33 +00:00