Skip to content

Commit b7b1b44

Browse files
author
Andrei Neagu
committed
remove note and fixed for pydantic2
1 parent 209303e commit b7b1b44

File tree

2 files changed

+5
-26
lines changed

2 files changed

+5
-26
lines changed

packages/models-library/tests/test_service_settings_labels.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from typing import Any, Final, NamedTuple
1010

1111
import pytest
12+
from common_library.json_serialization import json_dumps
1213
from models_library.basic_types import PortInt
1314
from models_library.osparc_variable_identifier import (
1415
OsparcVariableIdentifier,
@@ -32,7 +33,6 @@
3233
from models_library.services_resources import DEFAULT_SINGLE_SERVICE_NAME
3334
from models_library.utils.string_substitution import TextTemplate
3435
from pydantic import BaseModel, TypeAdapter, ValidationError
35-
from pydantic.json import pydantic_encoder
3636

3737

3838
class _Parametrization(NamedTuple):
@@ -558,11 +558,6 @@ def test_can_parse_labels_with_osparc_identifiers(
558558
assert "$" not in service_meta_str
559559

560560

561-
def servicelib__json_serialization__json_dumps(obj: Any, **kwargs):
562-
# Analogous to 'common_library.json_serialization.json_dumps'
563-
return json.dumps(obj, default=pydantic_encoder, **kwargs)
564-
565-
566561
def test_resolving_some_service_labels_at_load_time(
567562
vendor_environments: dict[str, Any], service_labels: dict[str, str]
568563
):
@@ -579,9 +574,7 @@ def test_resolving_some_service_labels_at_load_time(
579574
("settings", SimcoreServiceSettingsLabel),
580575
):
581576
to_serialize = getattr(service_meta, attribute_name)
582-
template = TextTemplate(
583-
servicelib__json_serialization__json_dumps(to_serialize)
584-
)
577+
template = TextTemplate(json_dumps(to_serialize))
585578
assert template.is_valid()
586579
resolved_label: str = template.safe_substitute(vendor_environments)
587580
to_restore = TypeAdapter(pydantic_model).validate_json(resolved_label)

packages/models-library/tests/test_utils_fastapi_encoders.py

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,22 @@
44
# pylint: disable=too-many-arguments
55

66
import json
7-
from typing import Any
87
from uuid import uuid4
98

10-
import pytest
9+
from common_library.json_serialization import json_dumps
1110
from faker import Faker
1211
from models_library.utils.fastapi_encoders import servicelib_jsonable_encoder
13-
from pydantic.json import pydantic_encoder
14-
15-
16-
def servicelib__json_serialization__json_dumps(obj: Any, **kwargs):
17-
# Analogous to 'common_library.json_serialization.json_dumps'
18-
return json.dumps(obj, default=pydantic_encoder, **kwargs)
1912

2013

2114
def test_using_uuids_as_keys(faker: Faker):
2215
uuid_key = uuid4()
2316

24-
with pytest.raises(TypeError):
25-
# IMPORTANT NOTE: we cannot serialize UUID objects as keys.
26-
# We have to convert them to strings but then the class information is lost upon deserialization i.e. it is not reversable!
27-
# NOTE: This could potentially be solved using 'orjson' !!
28-
#
29-
servicelib__json_serialization__json_dumps({uuid_key: "value"}, indent=1)
30-
31-
# use encoder
17+
# uuid keys now serialize without raising to the expected format string
3218
data = servicelib_jsonable_encoder({uuid_key: "value"})
3319
assert data == {f"{uuid_key}": "value"}
3420

3521
# serialize w/o raising
36-
dumped_data = servicelib__json_serialization__json_dumps(data, indent=1)
22+
dumped_data = json_dumps(data, indent=1)
3723

3824
# deserialize w/o raising
3925
loaded_data = json.loads(dumped_data)

0 commit comments

Comments
 (0)