def test_wrap_ser_called_once() -> None:
    """See https://github.com/pydantic/pydantic/issues/11505 for context.

    This is effectively confirming that prebuilt serializers aren't used for wrap serializers.
    """

    class MyModel(BaseModel):
        inner_value: str

        @model_serializer(mode='wrap')
        def my_wrapper_serializer(self, serializer):
            self.inner_value = f'my_prefix:{self.inner_value}'
            return serializer(self)

    class MyParentModel(BaseModel):
        nested: MyModel

        @field_serializer('nested', mode='wrap')
        def wrapped_field_serializer(self, field_value, serializer):
            return serializer(field_value)

    my_model = MyParentModel.model_validate({'nested': {'inner_value': 'foo'}})
    assert my_model.model_dump() == {'nested': {'inner_value': 'my_prefix:foo'}}
See https://github.com/pydantic/pydantic/issues/11505 for context.

    This is effectively confirming that prebuilt serializers aren't used for wrap serializers.
    
tests/test_serialize.py