Skip to content

Commit 0832b3c

Browse files
committed
tests/fastapi - invalid use of parameter
`Cannot use `Query` for path param 'pet_id'`
1 parent 3dadcd3 commit 0832b3c

File tree

4 files changed

+18
-20
lines changed

4 files changed

+18
-20
lines changed

tests/api/v1/main.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing import Optional
55

66
import starlette.status
7-
from fastapi import FastAPI, APIRouter, Query, Body, Response
7+
from fastapi import FastAPI, APIRouter, Body, Response, Path
88
from fastapi.responses import JSONResponse
99

1010
from .schema import Pets, Pet, PetCreate, Error
@@ -66,8 +66,8 @@ def listPet(limit: Optional[int] = None) -> Pets:
6666
return list(ZOO.values())
6767

6868

69-
@router.get("/pets/{pet_id}", operation_id="getPet", response_model=Pet, responses={404: {"model": Error}})
70-
def getPet(pet_id: int = Query(..., alias="petId")) -> Pets:
69+
@router.get("/pets/{petId}", operation_id="getPet", response_model=Pet, responses={404: {"model": Error}})
70+
def getPet(pet_id: int = Path(..., alias="petId")) -> Pets:
7171
for k, v in ZOO.items():
7272
if pet_id == v.id:
7373
return v
@@ -78,8 +78,8 @@ def getPet(pet_id: int = Query(..., alias="petId")) -> Pets:
7878
)
7979

8080

81-
@router.delete("/pets/{pet_id}", operation_id="deletePet", responses={204: {"model": None}, 404: {"model": Error}})
82-
def deletePet(response: Response, pet_id: int = Query(..., alias="petId")) -> Pets:
81+
@router.delete("/pets/{petId}", operation_id="deletePet", responses={204: {"model": None}, 404: {"model": Error}})
82+
def deletePet(response: Response, pet_id: int = Path(..., alias="petId")) -> Pets:
8383
for k, v in ZOO.items():
8484
if pet_id == v.id:
8585
del ZOO[k]

tests/api/v2/main.py

+5-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import Optional
44

55
import starlette.status
6-
from fastapi import Query, Body, Response, APIRouter
6+
from fastapi import Body, Response, APIRouter, Path
77
from fastapi.responses import JSONResponse
88
from fastapi_versioning import version
99

@@ -54,10 +54,8 @@ def listPet(limit: Optional[int] = None) -> schema.Pets:
5454
return list(ZOO.values())
5555

5656

57-
@router.get(
58-
"/pets/{pet_id}", operation_id="getPet", response_model=schema.Pet, responses={404: {"model": schema.Error}}
59-
)
60-
def getPet(pet_id: str = Query(..., alias="petId")) -> schema.Pets:
57+
@router.get("/pets/{petId}", operation_id="getPet", response_model=schema.Pet, responses={404: {"model": schema.Error}})
58+
def getPet(pet_id: str = Path(..., alias="petId")) -> schema.Pets:
6159
for k, v in ZOO.items():
6260
if pet_id == v.identifier:
6361
return v
@@ -69,9 +67,9 @@ def getPet(pet_id: str = Query(..., alias="petId")) -> schema.Pets:
6967

7068

7169
@router.delete(
72-
"/pets/{pet_id}", operation_id="deletePet", responses={204: {"model": None}, 404: {"model": schema.Error}}
70+
"/pets/{petId}", operation_id="deletePet", responses={204: {"model": None}, 404: {"model": schema.Error}}
7371
)
74-
def deletePet(response: Response, pet_id: int = Query(..., alias="petId")) -> None:
72+
def deletePet(response: Response, pet_id: int = Path(..., alias="petId")) -> None:
7573
for k, v in ZOO.items():
7674
if pet_id == v.identifier:
7775
del ZOO[k]

tests/apiv1_test.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -73,21 +73,21 @@ async def test_listPet(event_loop, server, client):
7373
@pytest.mark.skipif(sys.version_info < (3, 9), reason="requires asyncio.to_thread")
7474
async def test_getPet(event_loop, server, client):
7575
h, pet = await asyncio.to_thread(client._.createPet, **randomPet(uuid.uuid4()))
76-
r = await asyncio.to_thread(client._.getPet, parameters={"pet_id": pet.id})
76+
r = await asyncio.to_thread(client._.getPet, parameters={"petId": pet.id})
7777
assert type(r).schema() == type(pet).schema()
7878
assert r.id == pet.id
7979

80-
r = await asyncio.to_thread(client._.getPet, parameters={"pet_id": -1})
80+
r = await asyncio.to_thread(client._.getPet, parameters={"petId": -1})
8181
assert type(r).schema() == client.components.schemas["Error"].get_type().schema()
8282

8383

8484
@pytest.mark.asyncio
8585
@pytest.mark.skipif(sys.version_info < (3, 9), reason="requires asyncio.to_thread")
8686
async def test_deletePet(event_loop, server, client):
87-
r = await asyncio.to_thread(client._.deletePet, parameters={"pet_id": -1})
87+
r = await asyncio.to_thread(client._.deletePet, parameters={"petId": -1})
8888
assert type(r).schema() == client.components.schemas["Error"].get_type().schema()
8989

9090
await asyncio.to_thread(client._.createPet, **randomPet(uuid.uuid4()))
9191
zoo = await asyncio.to_thread(client._.listPet)
9292
for pet in zoo:
93-
await asyncio.to_thread(client._.deletePet, parameters={"pet_id": pet.id})
93+
await asyncio.to_thread(client._.deletePet, parameters={"petId": pet.id})

tests/apiv2_test.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -162,24 +162,24 @@ async def test_listPet(event_loop, server, client):
162162
@pytest.mark.asyncio
163163
async def test_getPet(event_loop, server, client):
164164
pet = await client._.createPet(data=randomPet(client, str(uuid.uuid4())))
165-
r = await client._.getPet(parameters={"pet_id": pet.__root__.identifier})
165+
r = await client._.getPet(parameters={"petId": pet.__root__.identifier})
166166
assert type(r.__root__).schema() == type(pet.__root__).schema()
167167

168-
r = await client._.getPet(parameters={"pet_id": "-1"})
168+
r = await client._.getPet(parameters={"petId": "-1"})
169169
assert type(r).schema() == client.components.schemas["Error"].get_type().schema()
170170

171171

172172
@pytest.mark.asyncio
173173
async def test_deletePet(event_loop, server, client):
174-
r = await client._.deletePet(parameters={"pet_id": -1})
174+
r = await client._.deletePet(parameters={"petId": -1})
175175
assert type(r).schema() == client.components.schemas["Error"].get_type().schema()
176176

177177
await client._.createPet(data=randomPet(client, str(uuid.uuid4())))
178178
zoo = await client._.listPet()
179179
for pet in zoo:
180180
while hasattr(pet, "__root__"):
181181
pet = pet.__root__
182-
await client._.deletePet(parameters={"pet_id": pet.identifier})
182+
await client._.deletePet(parameters={"petId": pet.identifier})
183183

184184

185185
@pytest.mark.asyncio

0 commit comments

Comments
 (0)