From d56079a1d45d357fd136fa56f6378313dbe47096 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 7 Jul 2026 11:41:47 +0000 Subject: [PATCH] =?UTF-8?q?Built-form=20filter=20resolves=20with=20the=20s?= =?UTF-8?q?ame=20precedence=20as=20property=20type=20=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .../app/modelling/test_property_filters.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/backend/app/modelling/test_property_filters.py b/tests/backend/app/modelling/test_property_filters.py index 223696dd5..7f4a0f255 100644 --- a/tests/backend/app/modelling/test_property_filters.py +++ b/tests/backend/app/modelling/test_property_filters.py @@ -258,6 +258,35 @@ def test_unknown_is_a_selectable_property_type_bucket(db_engine: Engine) -> None assert [p.property_id for p in resolved] == [unknowable] +def test_built_form_filter_resolves_with_the_same_precedence( + db_engine: Engine, +) -> None: + # arrange — both lodged as code 4 (Mid-Terrace); one overridden to Detached + with Session(db_engine) as session: + overridden = _seed_property(session, portfolio_id=814) + _seed_epc(session, property_id=overridden, built_form="4") + _seed_override( + session, + property_id=overridden, + component="built_form_type", + value="Detached", + ) + mid_terrace = _seed_property(session, portfolio_id=814) + _seed_epc(session, property_id=mid_terrace, built_form="4") + semi = _seed_property(session, portfolio_id=814) + _seed_epc(session, property_id=semi, built_form="2") + + # act + resolved = resolve_filtered_property_ids( + session, + portfolio_id=814, + filters=PropertyGroupFilters(built_forms=["Detached", "Mid-Terrace"]), + ) + + # assert — the override wins for one; the code maps for the other + assert [p.property_id for p in resolved] == [overridden, mid_terrace] + + def test_postcode_filter_matches_exactly(db_engine: Engine) -> None: # arrange with Session(db_engine) as session: