diff --git a/backend/magic_plan/magic_plan_client.py b/backend/magic_plan/magic_plan_client.py index 34c40695..ee52ffb0 100644 --- a/backend/magic_plan/magic_plan_client.py +++ b/backend/magic_plan/magic_plan_client.py @@ -1,6 +1,6 @@ import requests -from datatypes.magicplan.api.response import MagicPlanPlan, PlansListResponse +from datatypes.magicplan.api.response import MagicPlanPlan, PlanSummary, PlansListResponse _BASE_URL = "https://cloud.magicplan.app/api/v2" @@ -10,10 +10,8 @@ class MagicPlanClient: self._session = requests.Session() self._session.headers.update({"customer": customer_id, "key": api_key}) - def get_plans(self) -> PlansListResponse: - r = self._session.get(f"{_BASE_URL}/workgroups/plans") - r.raise_for_status() - return PlansListResponse.model_validate(r.json()["data"]) + def get_plans(self) -> list[PlanSummary]: + raise NotImplementedError def get_plan(self, plan_id: str) -> MagicPlanPlan: return MagicPlanPlan.model_validate(self._fetch_plan(plan_id).json()["data"]) diff --git a/backend/magic_plan/tests/test_magic_plan_client.py b/backend/magic_plan/tests/test_magic_plan_client.py index 27d4ebad..bf078517 100644 --- a/backend/magic_plan/tests/test_magic_plan_client.py +++ b/backend/magic_plan/tests/test_magic_plan_client.py @@ -7,7 +7,7 @@ import pytest import requests from backend.magic_plan.magic_plan_client import MagicPlanClient -from datatypes.magicplan.api.response import MagicPlanPlan, PlansListResponse +from datatypes.magicplan.api.response import MagicPlanPlan, PlanSummary FIXTURE_DIR = Path(__file__).parents[2] / "magic_plan" BASE_URL = "https://cloud.magicplan.app/api/v2" @@ -70,7 +70,9 @@ def test_get_plans_calls_correct_url( # Act client.get_plans() # Assert - mock_session.get.assert_called_once_with(f"{BASE_URL}/workgroups/plans") + mock_session.get.assert_called_once_with( + f"{BASE_URL}/workgroups/plans", params={"page": 1} + ) def test_get_plans_calls_raise_for_status( @@ -88,7 +90,7 @@ def test_get_plans_calls_raise_for_status( mock_session.get.return_value.raise_for_status.assert_called_once() -def test_get_plans_returns_plans_list_response( +def test_get_plans_returns_list_of_plan_summaries( client: MagicPlanClient, mock_session: MagicMock ) -> None: # Arrange @@ -100,8 +102,9 @@ def test_get_plans_returns_plans_list_response( # Act result = client.get_plans() # Assert - assert isinstance(result, PlansListResponse) - assert len(result.plans) == 1 + assert isinstance(result, list) + assert len(result) == 1 + assert isinstance(result[0], PlanSummary) def test_get_plans_propagates_http_error(