Browse Source

🚸 Improve error message for invalid query parameter type annotations (#14479)

Co-authored-by: Anton.D <[email protected]>
Co-authored-by: Motov Yurii <[email protected]>
pull/14816/head
Anton 4 months ago
committed by GitHub
parent
commit
41352de24c
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      fastapi/dependencies/utils.py
  2. 20
      tests/test_invalid_sequence_param.py

2
fastapi/dependencies/utils.py

@ -519,7 +519,7 @@ def analyze_param(
# For Pydantic v1
and getattr(field, "shape", 1) == 1
)
)
), f"Query parameter {param_name!r} must be one of the supported types"
return ParamDetails(type_annotation=type_annotation, depends=depends, field=field)

20
tests/test_invalid_sequence_param.py

@ -6,7 +6,10 @@ from pydantic import BaseModel
def test_invalid_sequence():
with pytest.raises(AssertionError):
with pytest.raises(
AssertionError,
match="Query parameter 'q' must be one of the supported types",
):
app = FastAPI()
class Item(BaseModel):
@ -18,7 +21,10 @@ def test_invalid_sequence():
def test_invalid_tuple():
with pytest.raises(AssertionError):
with pytest.raises(
AssertionError,
match="Query parameter 'q' must be one of the supported types",
):
app = FastAPI()
class Item(BaseModel):
@ -30,7 +36,10 @@ def test_invalid_tuple():
def test_invalid_dict():
with pytest.raises(AssertionError):
with pytest.raises(
AssertionError,
match="Query parameter 'q' must be one of the supported types",
):
app = FastAPI()
class Item(BaseModel):
@ -42,7 +51,10 @@ def test_invalid_dict():
def test_invalid_simple_dict():
with pytest.raises(AssertionError):
with pytest.raises(
AssertionError,
match="Query parameter 'q' must be one of the supported types",
):
app = FastAPI()
class Item(BaseModel):

Loading…
Cancel
Save