From 09e31c2a984e0117e4aeea3738cc04fb11965e45 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 4 Jun 2026 08:13:20 +0000 Subject: [PATCH] correct magicplan orchestration tests --- .../magic_plan/test_magic_plan_client.py | 2 +- .../magicplan_api_plan_response_example.json | 136742 +++++++++++++++ ...magicplan_api_plan_response_example_2.json | 1 + ...magicplan_api_plan_response_example_3.json | 136742 +++++++++++++++ ...magicplan_api_plan_response_example_4.json | 136742 +++++++++++++++ .../magicplan_api_plans_response_example.json | 39 + .../test_magic_plan_orchestrator.py | 97 +- 7 files changed, 410325 insertions(+), 40 deletions(-) create mode 100644 tests/magic_plan/magicplan_api_plan_response_example.json create mode 100644 tests/magic_plan/magicplan_api_plan_response_example_2.json create mode 100644 tests/magic_plan/magicplan_api_plan_response_example_3.json create mode 100644 tests/magic_plan/magicplan_api_plan_response_example_4.json create mode 100644 tests/magic_plan/magicplan_api_plans_response_example.json diff --git a/tests/infrastructure/magic_plan/test_magic_plan_client.py b/tests/infrastructure/magic_plan/test_magic_plan_client.py index f19d493c..262f13d3 100644 --- a/tests/infrastructure/magic_plan/test_magic_plan_client.py +++ b/tests/infrastructure/magic_plan/test_magic_plan_client.py @@ -22,7 +22,7 @@ def _load_fixture(name: str) -> dict[str, Any]: def _make_client(mock_session: MagicMock) -> MagicPlanClient: mock_session.headers = {} with patch( - "backend.magic_plan.magic_plan_client.requests.Session", + "infrastructure.magic_plan.magic_plan_client.requests.Session", return_value=mock_session, ): return MagicPlanClient(customer_id=CUSTOMER_ID, api_key=API_KEY) diff --git a/tests/magic_plan/magicplan_api_plan_response_example.json b/tests/magic_plan/magicplan_api_plan_response_example.json new file mode 100644 index 00000000..d76b3540 --- /dev/null +++ b/tests/magic_plan/magicplan_api_plan_response_example.json @@ -0,0 +1,136742 @@ +{ + "message": "OK", + "data": { + "plan": { + "id": "a7285ed1-878d-47eb-8aa6-85ef9e187516", + "project_id": "9f8f3208-0f04-466f-9c4c-e776532183c8", + "name": "2, Br2 8bz", + "address": { + "street": "2 Laburnum Way", + "street_number": null, + "postal_code": "BR2 8BZ", + "city": "Bromley", + "country": "GB", + "longitude": 0.0616749, + "latitude": 51.3835182 + }, + "creation_date": "2026-04-28T08:32:58+00:00", + "update_date": "2026-04-29T14:58:54+00:00", + "thumbnail_url": "https:\/\/s3.amazonaws.com\/prod.plans.sensopia.com\/a7285ed1-878d-47eb-8aa6-85ef9e187516\/plan.thumb", + "public_url": "https:\/\/cloud.magicplan.app\/plan\/a7285ed1-878d-47eb-8aa6-85ef9e187516", + "cloud_url": "https:\/\/cloud.magicplan.app\/projects\/a7285ed1-878d-47eb-8aa6-85ef9e187516", + "3d_url": "https:\/\/3d.magicplan.app\/#embed\/?key=YzBkMTQyZDRlY2E5MmEzMWQ4NWE1NWJmMGE4OTQ5ZjMwOTNlZjcwNjhkN2U4ODg5ZDZiMDI1OTRkNWU5ZTY0N%2B9n3Xg%2FF422BetMnabb%2FwQI3XiEQbNltioOXI05WueYapFlJvuxgPLnzxjLI1eFcsii6s7vRgs71gHD1LPsSBcNGjF424hTkMCt9hxbCryf", + "workgroup_id": "677d01685458a", + "team_id": null, + "created_by": { + "id": "49c5fd0d-5031-4a7d-aa59-3cc1b64d18aa", + "firstname": null, + "lastname": null, + "email": "sebastian@osmosis-acd.com" + } + }, + "plan_detail": { + "magicplan_format_xml": "\n2026-04-24<\/value>2.134<\/value>100<\/value>0<\/value>0<\/value><\/values>Ground Floor<\/name>2.450007<\/value>Total m2 =1.196 yd\u00b2 <\/value><\/values><\/symbolInstance>m<\/value>m<\/value>m2<\/value>outdoors<\/value>m3<\/value><\/values><\/symbolInstance>annotations<\/value>3<\/value>left<\/value>M2 - 44.19\nHeight - 2.43\nHLP - 20.56\nPWL - 6.12<\/value>top<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>annotations<\/value>7.22m<\/value><\/values><\/symbolInstance>annotations<\/value>6.12m<\/value><\/values><\/symbolInstance>m<\/value>0<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.026217<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>0.905517<\/value>1.20394<\/value><\/values><\/symbolInstance>0.496099<\/value>0.241025<\/value>plumbing<\/value>0.682423<\/value>0.241025<\/value>0.454712<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.014143<\/value><\/values><\/symbolInstance>m<\/value>0<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.963297<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>m<\/value>m<\/value>m2<\/value>hvac<\/value>m3<\/value>0.1500<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.014739<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>0.985417<\/value>1.099043<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>0.911601<\/value>1.123649<\/value><\/values><\/symbolInstance>m<\/value>0<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.057803<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>m<\/value>m<\/value>m2<\/value>hvac<\/value>m3<\/value>0.1500<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.942764<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>0.968262<\/value>1.063659<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.014143<\/value><\/values><\/symbolInstance>m<\/value>0<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.133701<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.014739<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.942764<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>0.867147<\/value>1.202909<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>m<\/value>m<\/value>m2<\/value>hvac<\/value>m3<\/value>0.1500<\/value><\/values><\/symbolInstance>m<\/value>m<\/value>m2<\/value>electrical<\/value>m3<\/value>1.1<\/value><\/values><\/symbolInstance>structure<\/value>0<\/value>1<\/value><\/values><\/symbolInstance>m<\/value>0<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>2.057803<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.993003<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.0<\/value><\/values><\/symbolInstance>m<\/value>1<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.0<\/value><\/values><\/symbolInstance>m<\/value>0<\/value>m<\/value>m2<\/value>doors<\/value>m3<\/value>1.963297<\/value><\/values><\/symbolInstance>677d01685458a<\/value><\/values><\/symbolInstance>m<\/value>m<\/value>m2<\/value>hvac<\/value>m3<\/value>0.1500<\/value><\/values><\/symbolInstance>2.450007<\/value>0.5x1.2 (x2)\n<\/value>2500 (x2)<\/value>Between.15.and.30.degrees<\/value>0<\/value>9.X.6<\/value>0<\/value>0<\/value>9<\/value><\/values><\/floorRoom>