From cda2091e23ea92b34cf81edc618076004f38b6ef Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Fri, 5 Jun 2026 12:51:28 +0000 Subject: [PATCH] =?UTF-8?q?Window=20with=20no=20custom=5Fdisplayable=5Ffie?= =?UTF-8?q?lds=20yields=20ventilation=3DNone=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../magicplan/domain/tests/test_mapper.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/datatypes/magicplan/domain/tests/test_mapper.py b/datatypes/magicplan/domain/tests/test_mapper.py index 7632e7ef..053c3d7f 100644 --- a/datatypes/magicplan/domain/tests/test_mapper.py +++ b/datatypes/magicplan/domain/tests/test_mapper.py @@ -4,8 +4,8 @@ from typing import Any import pytest -from datatypes.magicplan.api.response import MagicPlanPlan -from datatypes.magicplan.domain.mapper import map_plan +from datatypes.magicplan.api.response import MagicPlanPlan, Symbol, Vec3, WallItem +from datatypes.magicplan.domain.mapper import _map_window, map_plan from datatypes.magicplan.domain.models import Plan FIXTURE_DIR = Path(__file__).parents[4] / "backend" / "magic_plan" @@ -240,6 +240,20 @@ def plan_new() -> Plan: return map_plan(MagicPlanPlan.model_validate(payload["data"])) +def test_window_with_no_custom_fields_has_no_ventilation() -> None: + wi = WallItem( + uid="test", + symbol=Symbol(id="windowcasement", name="Casement Window", valid=True), + size=Vec3(x=1.0, y=0.0, z=1.2), + position=Vec3(x=0.0, y=0.0, z=0.0), + rotation=Vec3(x=0.0, y=0.0, z=0.0), + ) + + window = _map_window(wi) + + assert window.ventilation is None + + def test_kitchen_window_has_ventilation(plan_new: Plan) -> None: # Arrange — Kitchen is floor 0 room 0; its only window is a windowcasement # with custom_displayable_fields populated in the new fixture.