Fetch all pages in get_plans pagination loop 🟪

This commit is contained in:
Daniel Roth 2026-05-12 14:54:14 +00:00
parent 0d324f99b2
commit 5f77fbf4e4
2 changed files with 10 additions and 16 deletions

View file

@ -3,11 +3,7 @@ import json
from datetime import datetime, timezone from datetime import datetime, timezone
from typing import Optional from typing import Optional
from datatypes.magicplan.api.response import ( from datatypes.magicplan.api.response import MagicPlanPlan, PlanSummary
MagicPlanPlan,
PlanSummary,
PlansListResponse,
)
from datatypes.magicplan.domain.mapper import map_plan from datatypes.magicplan.domain.mapper import map_plan
from datatypes.magicplan.domain.models import Plan from datatypes.magicplan.domain.models import Plan
@ -39,10 +35,8 @@ class MagicPlanService:
if uprn is not None: if uprn is not None:
logger.info("MagicPlanService.run uprn=%s", uprn) logger.info("MagicPlanService.run uprn=%s", uprn)
plans_response: PlansListResponse = self._client.get_plans() plans: list[PlanSummary] = self._client.get_plans()
matched: Optional[PlanSummary] = find_matching_plan( matched: Optional[PlanSummary] = find_matching_plan(plans, address)
plans_response.plans, address
)
if matched is None: if matched is None:
raise ValueError(f"No MagicPlan found for address: {address!r}") raise ValueError(f"No MagicPlan found for address: {address!r}")

View file

@ -91,7 +91,7 @@ def test_run_fetches_plan_with_matched_id(
domain_plan: Plan, domain_plan: Plan,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
mock_client.get_plan.return_value = api_magic_plan mock_client.get_plan.return_value = api_magic_plan
service = _make_service(mock_client) service = _make_service(mock_client)
with patch( with patch(
@ -114,7 +114,7 @@ def test_run_returns_mapped_plan(
domain_plan: Plan, domain_plan: Plan,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
mock_client.get_plan.return_value = api_magic_plan mock_client.get_plan.return_value = api_magic_plan
service = _make_service(mock_client) service = _make_service(mock_client)
with patch( with patch(
@ -137,7 +137,7 @@ def test_run_calls_save_plan_with_mapped_plan(
plan_summary: PlanSummary, plan_summary: PlanSummary,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
mock_client.get_plan.return_value = api_magic_plan mock_client.get_plan.return_value = api_magic_plan
service = _make_service(mock_client) service = _make_service(mock_client)
with patch( with patch(
@ -161,7 +161,7 @@ def test_run_accepts_uprn_without_error(
plan_summary: PlanSummary, plan_summary: PlanSummary,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
mock_client.get_plan.return_value = api_magic_plan mock_client.get_plan.return_value = api_magic_plan
service = _make_service(mock_client) service = _make_service(mock_client)
with patch( with patch(
@ -184,7 +184,7 @@ def test_run_uploads_to_s3_with_uprn_key(
plan_summary: PlanSummary, plan_summary: PlanSummary,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
request = _make_request(uprn="100023336956") request = _make_request(uprn="100023336956")
service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET) service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET)
with patch( with patch(
@ -211,7 +211,7 @@ def test_run_uploads_to_s3_with_deal_id_key_when_uprn_absent(
plan_summary: PlanSummary, plan_summary: PlanSummary,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
mock_client.get_plan.return_value = api_magic_plan mock_client.get_plan.return_value = api_magic_plan
request = _make_request(hubspot_deal_id="deal-456", uprn=None) request = _make_request(hubspot_deal_id="deal-456", uprn=None)
service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET) service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET)
@ -242,7 +242,7 @@ def test_run_creates_uploaded_file_record(
plan_summary: PlanSummary, plan_summary: PlanSummary,
) -> None: ) -> None:
# Arrange # Arrange
mock_client.get_plans.return_value.plans = [plan_summary] mock_client.get_plans.return_value = [plan_summary]
mock_client.get_plan.return_value = api_magic_plan mock_client.get_plan.return_value = api_magic_plan
request = _make_request(hubspot_deal_id="deal-789", uprn="100023336956") request = _make_request(hubspot_deal_id="deal-789", uprn="100023336956")
service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET) service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET)