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

1from typing import Annotated 1abcdefghijklmno

2 

3import pytest 1abcdefghijklmno

4from pydantic import Field 1abcdefghijklmno

5 

6from fast_depends import Depends, Provider, inject 1abcdefghijklmno

7from fast_depends.pydantic import PydanticSerializer 1abcdefghijklmno

8 

9 

10def dep(a: Annotated[int, Field()] = 1) -> int: 1abcdefghijklmno

11 return a 1abcdefghijklmno

12 

13 

14def dep2(a: Annotated[int, Field()] = 2) -> int: 1abcdefghijklmno

15 return a 1abcdefghijklmno

16 

17 

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

40 

41 assert func() == 1 1abcdefghijklmno

42 

43 with provider.scope(dep, dep2): 1abcdefghijklmno

44 assert func() == 2 1abcdefghijklmno

45 

46 

47def test_overrides_before_root_func_creation(provider: Provider) -> None: 1abcdefghijklmno

48 provider.override(dep, dep2) 1abcdefghijklmno

49 

50 @inject(serializer_cls=PydanticSerializer(), dependency_provider=provider) 1abcdefghijklmno

51 def func(a: Annotated[int, Depends(dep)]) -> int: 1abcdefghijklmno

52 return a 1abcdefghijklmno

53 

54 assert func() == 2 1abcdefghijklmno