mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Upload gzip-compressed MagicPlan JSON to S3 - only make one API call 🟪
This commit is contained in:
parent
9f62e3c31a
commit
ce2b61d60b
2 changed files with 8 additions and 5 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import gzip
|
||||
import json
|
||||
from datetime import datetime, timezone
|
||||
from typing import Optional
|
||||
|
||||
|
|
@ -46,8 +47,10 @@ class MagicPlanService:
|
|||
if matched is None:
|
||||
raise ValueError(f"No MagicPlan found for address: {address!r}")
|
||||
|
||||
magic_plan: MagicPlanPlan = self._client.get_plan(matched.id)
|
||||
raw_bytes: bytes = self._client.get_plan_raw(matched.id)
|
||||
magic_plan: MagicPlanPlan = MagicPlanPlan.model_validate(
|
||||
json.loads(raw_bytes)["data"]
|
||||
)
|
||||
plan: Plan = map_plan(magic_plan)
|
||||
|
||||
uploaded_file: UploadedFile = self._upload_raw_plan_json(
|
||||
|
|
|
|||
|
|
@ -49,7 +49,9 @@ def plan_summary() -> PlanSummary:
|
|||
@pytest.fixture()
|
||||
def mock_client() -> MagicMock:
|
||||
client = MagicMock(spec=MagicPlanClient)
|
||||
client.get_plan_raw.return_value = b"{}"
|
||||
client.get_plan_raw.return_value = (
|
||||
FIXTURE_DIR / "magicplan_api_plan_response_example.json"
|
||||
).read_bytes()
|
||||
return client
|
||||
|
||||
|
||||
|
|
@ -102,7 +104,7 @@ def test_run_fetches_plan_with_matched_id(
|
|||
):
|
||||
service.run(_make_request())
|
||||
# Assert
|
||||
mock_client.get_plan.assert_called_once_with(plan_summary.id)
|
||||
mock_client.get_plan_raw.assert_called_once_with(plan_summary.id)
|
||||
|
||||
|
||||
def test_run_returns_mapped_plan(
|
||||
|
|
@ -183,8 +185,6 @@ def test_run_uploads_to_s3_with_uprn_key(
|
|||
) -> None:
|
||||
# Arrange
|
||||
mock_client.get_plans.return_value.plans = [plan_summary]
|
||||
mock_client.get_plan.return_value = api_magic_plan
|
||||
mock_client.get_plan_raw.return_value = b'{"raw": "data"}'
|
||||
request = _make_request(uprn="100023336956")
|
||||
service = MagicPlanService(client=mock_client, s3_bucket=S3_BUCKET)
|
||||
with patch(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue