Skip to content

Commit 699bcf1

Browse files
authored
Merge pull request #729 from cordada/bugfix/pydantic-rut-serialize-none
extras: Fix serialization of `None` in Pydantic `Rut` type
2 parents ec4fb98 + 2b473b4 commit 699bcf1

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

src/cl_sii/extras/pydantic_types.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ def validate_from_str(value: str) -> cl_sii.rut.Rut:
117117
]
118118
),
119119
serialization=pydantic_core.core_schema.plain_serializer_function_ser_schema(
120-
lambda instance: instance.canonical
120+
lambda instance: instance.canonical,
121+
when_used='unless-none',
121122
),
122123
)
123124

src/tests/test_extras_pydantic_types.py

+31
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,19 @@ def test_serialize_to_python(self) -> None:
4949

5050
self.assertEqual(expected_serialized_value, actual_serialized_value)
5151

52+
def test_serialize_none_to_python(self) -> None:
53+
# -----Arrange-----
54+
55+
instance = None
56+
57+
# -----Act-----
58+
59+
actual_serialized_value = self.pydantic_type_adapter.dump_python(instance)
60+
61+
# -----Assert-----
62+
63+
self.assertIsNone(actual_serialized_value)
64+
5265
def test_serialize_to_json(self) -> None:
5366
# -----Arrange-----
5467

@@ -67,6 +80,24 @@ def test_serialize_to_json(self) -> None:
6780

6881
self.assertEqual(expected_serialized_value, actual_serialized_value)
6982

83+
def test_serialize_none_to_json(self) -> None:
84+
# -----Arrange-----
85+
86+
instance = None
87+
88+
expected_serialized_value = b'null'
89+
self.assertEqual(
90+
expected_serialized_value, json.dumps(json.loads(expected_serialized_value)).encode()
91+
)
92+
93+
# -----Act-----
94+
95+
actual_serialized_value = self.pydantic_type_adapter.dump_json(instance)
96+
97+
# -----Assert-----
98+
99+
self.assertEqual(expected_serialized_value, actual_serialized_value)
100+
70101
def test_deserialize_from_instance(self) -> None:
71102
# -----Arrange-----
72103

0 commit comments

Comments
 (0)