diff --git a/backend/app/db/models/tests/test_magic_plan_models.py b/backend/app/db/models/tests/test_magic_plan_models.py index 986d3bcf..6371168c 100644 --- a/backend/app/db/models/tests/test_magic_plan_models.py +++ b/backend/app/db/models/tests/test_magic_plan_models.py @@ -1,4 +1,8 @@ -from backend.app.db.models.magic_plan import ( +from typing import Any, cast + +import sqlalchemy as sa + +from infrastructure.postgres.magic_plan_tables import ( MagicPlanDoorModel, MagicPlanFloorModel, MagicPlanPlanModel, @@ -6,6 +10,10 @@ from backend.app.db.models.magic_plan import ( MagicPlanWindowModel, ) + +def _table(model: type[Any]) -> sa.Table: + return cast(sa.Table, getattr(model, "__table__")) + # --- MagicPlanPlan --- @@ -14,20 +22,17 @@ def test_plan_table_name() -> None: def test_plan_has_magic_plan_uid_column() -> None: - assert "magic_plan_uid" in MagicPlanPlanModel.__table__.columns + assert "magic_plan_uid" in _table(MagicPlanPlanModel).columns def test_plan_magic_plan_uid_is_unique() -> None: - col = MagicPlanPlanModel.__table__.columns["magic_plan_uid"] - assert ( - any( - c.unique - for c in MagicPlanPlanModel.__table__.constraints - if hasattr(c, "columns") - and "magic_plan_uid" in [cc.name for cc in c.columns] - ) - or col.unique + t = _table(MagicPlanPlanModel) + col = t.columns["magic_plan_uid"] + has_unique_constraint = any( + isinstance(c, sa.UniqueConstraint) and "magic_plan_uid" in c.columns + for c in t.constraints ) + assert has_unique_constraint or col.unique def test_plan_instantiation() -> None: @@ -47,7 +52,7 @@ def test_floor_table_name() -> None: def test_floor_fk_column_name() -> None: - assert "magic_plan_plan_id" in MagicPlanFloorModel.__table__.columns + assert "magic_plan_plan_id" in _table(MagicPlanFloorModel).columns def test_floor_has_level() -> None: @@ -63,11 +68,11 @@ def test_room_table_name() -> None: def test_room_fk_column_name() -> None: - assert "magic_plan_floor_id" in MagicPlanRoomModel.__table__.columns + assert "magic_plan_floor_id" in _table(MagicPlanRoomModel).columns def test_room_has_measurement_columns() -> None: - cols = MagicPlanRoomModel.__table__.columns + cols = _table(MagicPlanRoomModel).columns assert "width_m" in cols assert "length_m" in cols assert "area_m2" in cols @@ -89,15 +94,14 @@ def test_window_table_name() -> None: def test_window_fk_column_name() -> None: - assert "magic_plan_room_id" in MagicPlanWindowModel.__table__.columns + assert "magic_plan_room_id" in _table(MagicPlanWindowModel).columns def test_window_has_measurement_columns() -> None: - cols = MagicPlanWindowModel.__table__.columns + cols = _table(MagicPlanWindowModel).columns assert "width_m" in cols assert "height_m" in cols assert "area_m2" in cols - assert "opening_type" in cols def test_window_instantiation() -> None: @@ -106,9 +110,8 @@ def test_window_instantiation() -> None: width_m=1.4, height_m=1.2, area_m2=1.68, - opening_type="casement", ) - assert window.opening_type == "casement" + assert window.width_m == 1.4 # --- MagicPlanDoor --- @@ -119,11 +122,11 @@ def test_door_table_name() -> None: def test_door_fk_column_name() -> None: - assert "magic_plan_room_id" in MagicPlanDoorModel.__table__.columns + assert "magic_plan_room_id" in _table(MagicPlanDoorModel).columns def test_door_has_width_mm_and_type() -> None: - cols = MagicPlanDoorModel.__table__.columns + cols = _table(MagicPlanDoorModel).columns assert "width_mm" in cols assert "type" in cols