Coverage for tests/serializers/pydantic/test_encode.py: 100%
18 statements
« prev ^ index » next coverage.py v7.17.3, created at 2026-11-13 05:19 +0000
« prev ^ index » next coverage.py v7.17.3, created at 2026-11-13 05:19 +0000
1from typing import Any 1abcdefghijklmno
3import pytest 1abcdefghijklmno
4from pydantic import BaseModel 1abcdefghijklmno
6from fast_depends.pydantic.serializer import PydanticSerializer 1abcdefghijklmno
7from tests.marks import pydanticV1, pydanticV2 1abcdefghijklmno
8from tests.serializers.params import comptex_params, parametrized 1abcdefghijklmno
11class SimpleModel(BaseModel): 1abcdefghijklmno
12 r: str 1abcdefghij
15@pytest.mark.parametrize( 1abcdefghijklmno
16 ("message", "expected_message"),
17 (
18 *parametrized,
19 *comptex_params,
20 pytest.param(
21 SimpleModel(r="hello!"),
22 b'{"r":"hello!"}',
23 id="model",
24 ),
25 ),
26)
27@pydanticV2 1abcdefghijklmno
28def test_encode_v2( 1abcdefghijklmno
29 message: Any,
30 expected_message: bytes,
31) -> None:
32 msg = PydanticSerializer.encode(message) 1cdfhjklmno
33 assert msg == expected_message 1cdfhjklmno
36@pytest.mark.parametrize( 1abcdefghijklmno
37 ("message", "expected_message"),
38 (
39 *parametrized,
40 *comptex_params,
41 pytest.param(
42 SimpleModel(r="hello!"),
43 b'{"r":"hello!"}',
44 id="model",
45 ),
46 ),
47)
48@pydanticV1 1abcdefghijklmno
49def test_encode_v1( 1abcdefghijklmno
50 message: Any,
51 expected_message: bytes,
52) -> None:
53 msg = PydanticSerializer.encode(message) 1abegi
54 # Pydantic v1 encodes through orjson/ujson/stdlib json, whichever is
55 # installed, and they disagree on separator whitespace only.
56 assert msg.replace(b", ", b",").replace(b": ", b":") == expected_message 1abegi