From 8af4eb67bc32addd15a710e2c55151c8c80b5e27 Mon Sep 17 00:00:00 2001 From: Pedro Crespo-Valero <32402063+pcrespov@users.noreply.github.com> Date: Thu, 6 Feb 2025 15:48:55 +0100 Subject: [PATCH] model dumps licensed item to aoivd unset --- .../api_schemas_webserver/licensed_items.py | 18 +++++++++++------- packages/models-library/tests/test_licenses.py | 5 ++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/models-library/src/models_library/api_schemas_webserver/licensed_items.py b/packages/models-library/src/models_library/api_schemas_webserver/licensed_items.py index 8c422894b91..4b53737a73f 100644 --- a/packages/models-library/src/models_library/api_schemas_webserver/licensed_items.py +++ b/packages/models-library/src/models_library/api_schemas_webserver/licensed_items.py @@ -109,18 +109,22 @@ def _update_json_schema_extra(schema: JsonDict) -> None: @classmethod def from_domain_model(cls, item: LicensedItem) -> Self: - return cls.model_validate( { - "licensed_item_id": item.licensed_item_id, - "display_name": item.display_name, - "licensed_resource_type": item.licensed_resource_type, + **item.model_dump( + include={ + "licensed_item_id", + "display_name", + "licensed_resource_type", + "pricing_plan_id", + "created_at", + "modified_at", + }, + exclude_unset=True, + ), "licensed_resource_data": { **item.licensed_resource_data, }, - "pricing_plan_id": item.pricing_plan_id, - "created_at": item.created_at, - "modified_at": item.modified_at, } ) diff --git a/packages/models-library/tests/test_licenses.py b/packages/models-library/tests/test_licenses.py index 893f4fcba0d..19c00efa715 100644 --- a/packages/models-library/tests/test_licenses.py +++ b/packages/models-library/tests/test_licenses.py @@ -20,12 +20,15 @@ def test_licensed_item_from_domain_model(): # date is required assert got.licensed_resource_data.source.features["date"] - # + # id is required assert ( got.licensed_resource_data.source.id == item.licensed_resource_data["source"]["id"] ) + # checks unset fields + assert "category_icon" not in got.licensed_resource_data.model_fields_set + def test_strict_check_of_examples(): class TestLicensedItemRestGet(LicensedItemRestGet):