Coverage for tests/serializers/pydantic/test_overrides.py: 100%
23 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 Annotated 1abcdefghijklmno
3import pytest 1abcdefghijklmno
4from pydantic import Field 1abcdefghijklmno
6from fast_depends import Depends, Provider, inject 1abcdefghijklmno
7from fast_depends.pydantic import PydanticSerializer 1abcdefghijklmno
10def dep(a: Annotated[int, Field()] = 1) -> int: 1abcdefghijklmno
11 return a 1abcdefghijklmno
14def dep2(a: Annotated[int, Field()] = 2) -> int: 1abcdefghijklmno
15 return a 1abcdefghijklmno
18@pytest.mark.parametrize( 1abcdefghijklmno
19 "fastdepends_error",
20 [
21 pytest.param(
22 False,
23 id="Disabled Fastepends Error",
24 ),
25 pytest.param(
26 True,
27 id="Enabled Fastepends Error",
28 ),
29 ],
30)
31def test_overrides_after_root_func_creation( 1abcdefghijklmno
32 provider: Provider, fastdepends_error: bool
33) -> None:
34 @inject( 1abcdefghijklmno
35 serializer_cls=PydanticSerializer(use_fastdepends_errors=fastdepends_error),
36 dependency_provider=provider,
37 )
38 def func(a: Annotated[int, Depends(dep)]) -> int: 1abcdefghijklmno
39 return a 1abcdefghijklmno
41 assert func() == 1 1abcdefghijklmno
43 with provider.scope(dep, dep2): 1abcdefghijklmno
44 assert func() == 2 1abcdefghijklmno
47def test_overrides_before_root_func_creation(provider: Provider) -> None: 1abcdefghijklmno
48 provider.override(dep, dep2) 1abcdefghijklmno
50 @inject(serializer_cls=PydanticSerializer(), dependency_provider=provider) 1abcdefghijklmno
51 def func(a: Annotated[int, Depends(dep)]) -> int: 1abcdefghijklmno
52 return a 1abcdefghijklmno
54 assert func() == 2 1abcdefghijklmno