Coverage for tests/test_params.py: 100%
24 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 fast_depends import Depends, Provider 1abcdefghijklmnopqrst
2from fast_depends.core import build_call_model 1abcdefghijklmnopqrst
3from fast_depends.library import CustomField 1abcdefghijklmnopqrst
6def test_params(): 1abcdefghijklmnopqrst
7 def func1(m): ... 1abcdefghijklmnopqrst
9 def func2(c, b=Depends(func1), d=CustomField()): # noqa: B008 1abcdefghijklmnopqrst
10 ...
12 def func3(b): ... 1abcdefghijklmnopqrst
14 def main(a, b, m=Depends(func2), k=Depends(func3)): ... 1abcdefghijklmnopqrst
16 def extra_func(n): ... 1abcdefghijklmnopqrst
18 model = build_call_model( 1abcdefghijklmnopqrst
19 main, extra_dependencies=(Depends(extra_func),), dependency_provider=Provider()
20 )
22 assert {p.field_name for p in model.params} == {"a", "b"} 1abcdefghijklmnopqrst
23 assert {p.field_name for p in model.flat_params} == {"a", "b", "c", "m", "n"} 1abcdefghijklmnopqrst
26def test_args_kwargs_params(): 1abcdefghijklmnopqrst
27 def func1(m): ... 1abcdefghijklmnopqrst
29 def func2(c, b=Depends(func1), d=CustomField()): # noqa: B008 1abcdefghijklmnopqrst
30 ...
32 def func3(b): ... 1abcdefghijklmnopqrst
34 def default_var_names(a, *args, b, m=Depends(func2), k=Depends(func3), **kwargs): 1abcdefghijklmnopqrst
35 return a, args, b, kwargs 1abcdefghijklmnopqrst
37 def extra_func(n): ... 1abcdefghijklmnopqrst
39 model = build_call_model( 1abcdefghijklmnopqrst
40 default_var_names,
41 extra_dependencies=(Depends(extra_func),),
42 dependency_provider=Provider(),
43 )
45 assert {p.field_name for p in model.params} == {"a", "args", "b", "kwargs"} 1abcdefghijklmnopqrst
46 assert {p.field_name for p in model.flat_params} == { 1abcdefghijklmnopqrst
47 "a",
48 "args",
49 "b",
50 "kwargs",
51 "c",
52 "m",
53 "n",
54 }
56 assert default_var_names(1, *("a"), b=2, **{"kw": "kw"}) == ( 1abcdefghijklmnopqrst
57 1,
58 ("a",),
59 2,
60 {"kw": "kw"},
61 )
64def test_custom_args_kwargs_params(): 1abcdefghijklmnopqrst
65 def func1(m): ... 1abcdefghijklmnopqrst
67 def func2(c, b=Depends(func1), d=CustomField()): # noqa: B008 1abcdefghijklmnopqrst
68 ...
70 def func3(b): ... 1abcdefghijklmnopqrst
72 def extra_func(n): ... 1abcdefghijklmnopqrst
74 def custom_var_names(a, *args_, b, m=Depends(func2), k=Depends(func3), **kwargs_): 1abcdefghijklmnopqrst
75 return a, args_, b, kwargs_ 1abcdefghijklmnopqrst
77 model = build_call_model( 1abcdefghijklmnopqrst
78 custom_var_names,
79 extra_dependencies=(Depends(extra_func),),
80 dependency_provider=Provider(),
81 )
83 assert {p.field_name for p in model.params} == {"a", "args_", "b", "kwargs_"} 1abcdefghijklmnopqrst
84 assert {p.field_name for p in model.flat_params} == { 1abcdefghijklmnopqrst
85 "a",
86 "args_",
87 "b",
88 "kwargs_",
89 "c",
90 "m",
91 "n",
92 }
94 assert custom_var_names(1, *("a"), b=2, **{"kw": "kw"}) == ( 1abcdefghijklmnopqrst
95 1,
96 ("a",),
97 2,
98 {"kw": "kw"},
99 )