Model/tests/repositories/epc
Khalim Conn-Kowlessar 68055364a6 test: recursive persistence-coverage guard sees nested fields 🟪
The ADR-0036 guard only inspected EpcPropertyData's top-level fields, so a
dropped field on a NESTED object (the PV-array list, the floor heat-loss
flags) slipped straight through. Generalise it to walk every domain
dataclass reachable from EpcPropertyData and check each field is
reconstructed by a _compose/_to_* mapper or allow-listed (per-field or
whole-class), keyed by Class.field.

Surfaced 14 pre-existing nested gaps the old guard was blind to: 7 are
calculator-read with no FE column (scoring-relevant silent-drop, same class
as the PV bug — tracked follow-up), the rest dormant or awaiting FE tables.
Each is now explicit and justified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 16:53:04 +00:00
..
__init__.py feat(epc): EPC persistence round-trip fidelity + JSONB code columns (Slice 1 #1129) 2026-05-30 19:26:18 +00:00
test_epc_bulk_read.py perf(repos): bulk get_many / get_for_properties — batch reads, not N round-trips (#1138) 2026-05-31 10:33:24 +00:00
test_epc_idempotent_save.py feat(repos): idempotent EPC + Baseline writes (replace by property_id) (#1138) 2026-05-31 09:41:39 +00:00
test_epc_persistence_field_coverage.py test: recursive persistence-coverage guard sees nested fields 🟪 2026-06-26 16:53:04 +00:00
test_epc_predicted_slot.py feat(epc-prediction): slice-5c predicted-EPC persistence slot 2026-06-16 03:50:19 +00:00
test_epc_round_trip.py test: solar PV arrays must round-trip through persistence 🟥 2026-06-26 16:43:26 +00:00