Skip to content

Commit b4b659f

Browse files
Merge pull request #1139 from roboflow/tests/cover-collect-func-params-with-tests
Cover collect_func_params with test
2 parents 05cba37 + dcbb043 commit b4b659f

1 file changed

Lines changed: 121 additions & 0 deletions

File tree

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
from inference.usage_tracking.utils import collect_func_params
2+
3+
4+
def test_collect_func_params():
5+
# given
6+
def func(arg1, arg2, kwarg3, kwarg4):
7+
pass
8+
9+
# when
10+
func_params = collect_func_params(
11+
func=func,
12+
args=["val1", "val2"],
13+
kwargs={"kwarg3": "val3", "kwarg4": "val4"},
14+
)
15+
16+
# then
17+
assert func_params == {
18+
"arg1": "val1",
19+
"arg2": "val2",
20+
"kwarg3": "val3",
21+
"kwarg4": "val4",
22+
}
23+
24+
25+
def test_collect_func_params_with_default_args():
26+
# given
27+
def func(
28+
arg1,
29+
arg2="default val2",
30+
arg3="default val3",
31+
kwarg4="default val4",
32+
kwarg5="default val5",
33+
):
34+
pass
35+
36+
# when
37+
func_params = collect_func_params(
38+
func=func,
39+
args=["val1", "val2"],
40+
kwargs={"kwarg4": "val4"},
41+
)
42+
43+
# then
44+
assert func_params == {
45+
"arg1": "val1",
46+
"arg2": "val2",
47+
"arg3": "default val3",
48+
"kwarg4": "val4",
49+
"kwarg5": "default val5",
50+
}
51+
52+
53+
def test_collect_func_params_with_args_and_catchall_kwargs():
54+
# given
55+
def func(
56+
arg1,
57+
arg2="default val2",
58+
arg3="default val3",
59+
kwarg4="default val4",
60+
kwarg5="default val5",
61+
**kwargs
62+
):
63+
pass
64+
65+
# when
66+
func_params = collect_func_params(
67+
func=func,
68+
args=["val1", "val2"],
69+
kwargs={"kwarg4": "val4", "kwarg6": "val6"},
70+
)
71+
72+
# then
73+
assert func_params == {
74+
"arg1": "val1",
75+
"arg2": "val2",
76+
"arg3": "default val3",
77+
"kwarg4": "val4",
78+
"kwarg5": "default val5",
79+
"kwarg6": "val6",
80+
"kwargs": {"kwarg4": "val4", "kwarg6": "val6"},
81+
}
82+
83+
84+
def test_collect_func_params_with_only_kwargs():
85+
# given
86+
def func(**kwargs):
87+
pass
88+
89+
# when
90+
func_params = collect_func_params(
91+
func=func,
92+
args=[],
93+
kwargs={"kwarg4": "val4", "kwarg6": "val6"},
94+
)
95+
96+
# then
97+
assert func_params == {
98+
"kwargs": {"kwarg4": "val4", "kwarg6": "val6"},
99+
"kwarg4": "val4",
100+
"kwarg6": "val6",
101+
}
102+
103+
104+
def test_collect_func_params_with_only_kwargs_and_errorneous_args_passed():
105+
# given
106+
def func(**kwargs):
107+
pass
108+
109+
# when
110+
func_params = collect_func_params(
111+
func=func,
112+
args=["val1", "val2"],
113+
kwargs={"kwarg4": "val4", "kwarg6": "val6"},
114+
)
115+
116+
# then
117+
assert func_params == {
118+
"kwargs": {"kwarg4": "val4", "kwarg6": "val6"},
119+
"kwarg4": "val4",
120+
"kwarg6": "val6",
121+
}, "Unexpected args should be ignored rather than causing errors"

0 commit comments

Comments
 (0)