diff --git a/tests/test_serialize.py b/tests/test_serialize.py index e27c39559f0..8ebe685316c 100644 --- a/tests/test_serialize.py +++ b/tests/test_serialize.py @@ -1009,17 +1009,26 @@ def test_annotated_computed_field_custom_serializer(): class Model(BaseModel): x: int + @computed_field + @property + def two_x(self) -> Annotated[int, PlainSerializer(lambda v: f'The double of x is {v}', return_type=str)]: + return self.x * 2 + @computed_field( - return_type=Annotated[str, PlainSerializer(lambda v: f'The double of x is {v}', return_type=str)] + return_type=Annotated[int, PlainSerializer(lambda v: f'The quadruple of x is {v}', return_type=str)] ) @property - def two_x(self) -> int: - return self.x * 2 + def four_x(self) -> int: + return self.two_x * 2 m = Model(x=1) - assert m.model_dump() == {'two_x': 'The double of x is 2', 'x': 1} - assert json.loads(m.model_dump_json()) == {'two_x': 'The double of x is 2', 'x': 1} + assert m.model_dump() == {'x': 1, 'two_x': 'The double of x is 2', 'four_x': 'The quadruple of x is 4'} + assert json.loads(m.model_dump_json()) == { + 'x': 1, + 'two_x': 'The double of x is 2', + 'four_x': 'The quadruple of x is 4', + } def test_computed_field_custom_serializer_bad_signature():