Skip to content

Commit 6a5025e

Browse files
davidhewittmsimacek
authored andcommitted
add benchmark for wrap serializer (pydantic#1787)
1 parent f6e9285 commit 6a5025e

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tests/benchmarks/test_serialization_micro.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,3 +482,25 @@ def test_dataclass_serialization_json(benchmark):
482482
def test_dataclass_to_json(benchmark):
483483
dc = Foo(a='hello', b=b'more', c=123, d=1.23)
484484
benchmark(to_json, dc)
485+
486+
487+
@pytest.mark.benchmark(group='function')
488+
def test_function_wrap_python(benchmark):
489+
def f(value, serializer, _info):
490+
return f'result={serializer(len(value))}'
491+
492+
s = SchemaSerializer(
493+
core_schema.int_schema(serialization=core_schema.wrap_serializer_function_ser_schema(f, info_arg=True))
494+
)
495+
benchmark(s.to_python, 'foo')
496+
497+
498+
@pytest.mark.benchmark(group='function')
499+
def test_function_wrap_json(benchmark):
500+
def f(value, serializer, _info):
501+
return f'result={serializer(len(value))}'
502+
503+
s = SchemaSerializer(
504+
core_schema.int_schema(serialization=core_schema.wrap_serializer_function_ser_schema(f, info_arg=True))
505+
)
506+
benchmark(s.to_json, 'foo')

0 commit comments

Comments
 (0)