Skip to content

Commit 2464168

Browse files
committed
clean up and more tests
1 parent 6a9dbb2 commit 2464168

File tree

2 files changed

+41
-6
lines changed

2 files changed

+41
-6
lines changed

ellar/common/params/args/base.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -367,12 +367,6 @@ def _add_extra_route_args(
367367
):
368368
continue
369369

370-
# default_field_info = t.cast(
371-
# t.Type[params.ParamFieldInfo],
372-
# param_default
373-
# if isinstance(param_default, FieldInfo)
374-
# else params.QueryFieldInfo,
375-
# )
376370
param_field = self._process_parameter_file(
377371
param_default=param_default,
378372
param_annotation=param_annotation,

tests/test_routing/test_extra_args.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,23 @@ def _wrapper(*args, **kwargs):
6363
return _wrapper
6464

6565

66+
def add_additional_grouped_field(func):
67+
# EXTRA ARGS SETUP
68+
query1 = ExtraEndpointArg(name="query1", annotation=Query[Filter])
69+
70+
extra_args(query1)(func)
71+
72+
@wraps(func)
73+
def _wrapper(*args, **kwargs):
74+
resolved_query1: Filter = query1.resolve(kwargs)
75+
76+
response = func(*args, **kwargs)
77+
response.update(query1=resolved_query1.dict())
78+
return response
79+
80+
return _wrapper
81+
82+
6683
@get("/test")
6784
@add_extra_non_field_extra_args
6885
@add_additional_signature_to_endpoint
@@ -207,3 +224,27 @@ def test_query_params_extra():
207224

208225
response = client.get("/test?from=1&to=2&range=20&foo=1&range2=50")
209226
assert response.status_code == 422
227+
228+
229+
def test_extra_args_as_grouped_fields():
230+
@get("/test-grouped")
231+
@add_additional_grouped_field
232+
def query_params_extra(
233+
request: Inject[Request],
234+
):
235+
return {}
236+
237+
tm.create_application().router.append(query_params_extra)
238+
client = tm.get_test_client()
239+
response = client.get(
240+
"/test-grouped?from=1&to=2&range=20&foo=1&range2=50&query1=somequery1&query2=somequery2"
241+
)
242+
assert response.json() == {
243+
"query1": {
244+
"from_datetime": "1970-01-01T00:00:01Z",
245+
"range": 20,
246+
"to_datetime": "1970-01-01T00:00:02Z",
247+
}
248+
}
249+
response = client.get("/test-grouped?query1=somequery1&query2=somequery2")
250+
assert response.status_code == 422

0 commit comments

Comments
 (0)