From 06567c28442aaf0258bc3080c97d520eb3976c86 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 7 May 2026 12:25:06 +0000 Subject: [PATCH] =?UTF-8?q?validate=20plans=20api=20response=20as=20pydant?= =?UTF-8?q?ic=20basemodel=20object=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../magicplan/api/tests/test_response.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/datatypes/magicplan/api/tests/test_response.py b/datatypes/magicplan/api/tests/test_response.py index 84f8f6d0..469b7f14 100644 --- a/datatypes/magicplan/api/tests/test_response.py +++ b/datatypes/magicplan/api/tests/test_response.py @@ -105,3 +105,35 @@ def plans_response(plans_raw_data: dict[str, Any]) -> PlansListResponse: def test_plans_list_model_validate_does_not_raise(plans_raw_data: dict[str, Any]) -> None: # act PlansListResponse.model_validate(plans_raw_data) + + +def test_plans_list_count(plans_response: PlansListResponse) -> None: + # assert + assert len(plans_response.plans) == 1 + + +def test_plans_list_first_plan_id(plans_response: PlansListResponse) -> None: + # assert + assert plans_response.plans[0].id == "9f9889ff-793e-4e9a-a6f0-e22f5b0f5365" + + +def test_plans_list_paging_page(plans_response: PlansListResponse) -> None: + # assert + assert plans_response.paging.page == 1 + + +def test_plans_list_paging_next_page_is_false(plans_response: PlansListResponse) -> None: + # assert + assert plans_response.paging.next_page is False + + +def test_plans_list_paging_count(plans_response: PlansListResponse) -> None: + # assert + assert plans_response.paging.count == 1 + + +def test_plans_list_unknown_keys_ignored(plans_raw_data: dict[str, Any]) -> None: + # arrange + data_with_extra = {**plans_raw_data, "unknown_future_field": "whatever"} + # act + PlansListResponse.model_validate(data_with_extra)