mirror of https://github.com/tiangolo/fastapi.git
✅ Recover extensive tests for path and params
This commit is contained in:
parent
4b94da956c
commit
b5a0c228e5
200
tests/main.py
200
tests/main.py
|
|
@ -1,4 +1,6 @@
|
|||
from fastapi import FastAPI
|
||||
from fastapi import Depends, FastAPI, Path, Query, Security
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from pydantic import BaseModel
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
|
@ -13,3 +15,199 @@ def non_decorated_route():
|
|||
|
||||
|
||||
app.add_api_route("/non_decorated_route", non_decorated_route)
|
||||
|
||||
|
||||
@app.get("/text")
|
||||
def get_text():
|
||||
return "Hello World"
|
||||
|
||||
|
||||
@app.get("/path/{item_id}")
|
||||
def get_id(item_id):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/str/{item_id}")
|
||||
def get_str_id(item_id: str):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/int/{item_id}")
|
||||
def get_int_id(item_id: int):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/float/{item_id}")
|
||||
def get_float_id(item_id: float):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/bool/{item_id}")
|
||||
def get_bool_id(item_id: bool):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param/{item_id}")
|
||||
def get_path_param_id(item_id: str = Path(None)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-required/{item_id}")
|
||||
def get_path_param_required_id(item_id: str = Path(...)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-minlength/{item_id}")
|
||||
def get_path_param_min_length(item_id: str = Path(..., min_length=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-maxlength/{item_id}")
|
||||
def get_path_param_max_length(item_id: str = Path(..., max_length=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-min_maxlength/{item_id}")
|
||||
def get_path_param_min_max_length(item_id: str = Path(..., max_length=3, min_length=2)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-gt/{item_id}")
|
||||
def get_path_param_gt(item_id: float = Path(..., gt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-gt0/{item_id}")
|
||||
def get_path_param_gt0(item_id: float = Path(..., gt=0)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-ge/{item_id}")
|
||||
def get_path_param_ge(item_id: float = Path(..., ge=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt/{item_id}")
|
||||
def get_path_param_lt(item_id: float = Path(..., lt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt0/{item_id}")
|
||||
def get_path_param_lt0(item_id: float = Path(..., lt=0)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le/{item_id}")
|
||||
def get_path_param_le(item_id: float = Path(..., le=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt-gt/{item_id}")
|
||||
def get_path_param_lt_gt(item_id: float = Path(..., lt=3, gt=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le-ge/{item_id}")
|
||||
def get_path_param_le_ge(item_id: float = Path(..., le=3, ge=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt-int/{item_id}")
|
||||
def get_path_param_lt_int(item_id: int = Path(..., lt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-gt-int/{item_id}")
|
||||
def get_path_param_gt_int(item_id: int = Path(..., gt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le-int/{item_id}")
|
||||
def get_path_param_le_int(item_id: int = Path(..., le=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-ge-int/{item_id}")
|
||||
def get_path_param_ge_int(item_id: int = Path(..., ge=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt-gt-int/{item_id}")
|
||||
def get_path_param_lt_gt_int(item_id: int = Path(..., lt=3, gt=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le-ge-int/{item_id}")
|
||||
def get_path_param_le_ge_int(item_id: int = Path(..., le=3, ge=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/query")
|
||||
def get_query(query):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/optional")
|
||||
def get_query_optional(query=None):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/int")
|
||||
def get_query_type(query: int):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/int/optional")
|
||||
def get_query_type_optional(query: int = None):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/int/default")
|
||||
def get_query_type_optional(query: int = 10):
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/param")
|
||||
def get_query_param(query=Query(None)):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/param-required")
|
||||
def get_query_param_required(query=Query(...)):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/param-required/int")
|
||||
def get_query_param_required_type(query: int = Query(...)):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
reusable_oauth2b = OAuth2PasswordBearer(tokenUrl="/token")
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
username: str
|
||||
|
||||
|
||||
def get_current_user(oauth_header: str = Security(reusable_oauth2b)):
|
||||
user = User(username=oauth_header)
|
||||
return user
|
||||
|
||||
|
||||
@app.get("/security/oauth2b")
|
||||
def read_current_user(current_user: User = Depends(get_current_user)):
|
||||
return current_user
|
||||
|
|
|
|||
|
|
@ -30,185 +30,6 @@ app.include_router(router_a)
|
|||
app.include_router(router_b, prefix="/b")
|
||||
|
||||
|
||||
@app.get("/text")
|
||||
def get_text():
|
||||
return "Hello World"
|
||||
|
||||
|
||||
@app.get("/path/{item_id}")
|
||||
def get_id(item_id):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/str/{item_id}")
|
||||
def get_str_id(item_id: str):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/int/{item_id}")
|
||||
def get_int_id(item_id: int):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/float/{item_id}")
|
||||
def get_float_id(item_id: float):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/bool/{item_id}")
|
||||
def get_bool_id(item_id: bool):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param/{item_id}")
|
||||
def get_path_param_id(item_id: str = Path(None)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-required/{item_id}")
|
||||
def get_path_param_required_id(item_id: str = Path(...)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-minlength/{item_id}")
|
||||
def get_path_param_min_length(item_id: str = Path(..., min_length=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-maxlength/{item_id}")
|
||||
def get_path_param_max_length(item_id: str = Path(..., max_length=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-min_maxlength/{item_id}")
|
||||
def get_path_param_min_max_length(item_id: str = Path(..., max_length=3, min_length=2)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-gt/{item_id}")
|
||||
def get_path_param_gt(item_id: float = Path(..., gt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-gt0/{item_id}")
|
||||
def get_path_param_gt0(item_id: float = Path(..., gt=0)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-ge/{item_id}")
|
||||
def get_path_param_ge(item_id: float = Path(..., ge=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt/{item_id}")
|
||||
def get_path_param_lt(item_id: float = Path(..., lt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt0/{item_id}")
|
||||
def get_path_param_lt0(item_id: float = Path(..., lt=0)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le/{item_id}")
|
||||
def get_path_param_le(item_id: float = Path(..., le=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt-gt/{item_id}")
|
||||
def get_path_param_lt_gt(item_id: float = Path(..., lt=3, gt=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le-ge/{item_id}")
|
||||
def get_path_param_le_ge(item_id: float = Path(..., le=3, ge=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt-int/{item_id}")
|
||||
def get_path_param_lt_int(item_id: int = Path(..., lt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-gt-int/{item_id}")
|
||||
def get_path_param_gt_int(item_id: int = Path(..., gt=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le-int/{item_id}")
|
||||
def get_path_param_le_int(item_id: int = Path(..., le=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-ge-int/{item_id}")
|
||||
def get_path_param_ge_int(item_id: int = Path(..., ge=3)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-lt-gt-int/{item_id}")
|
||||
def get_path_param_lt_gt_int(item_id: int = Path(..., lt=3, gt=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/path/param-le-ge-int/{item_id}")
|
||||
def get_path_param_le_ge_int(item_id: int = Path(..., le=3, ge=1)):
|
||||
return item_id
|
||||
|
||||
|
||||
@app.get("/query")
|
||||
def get_query(query):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/optional")
|
||||
def get_query_optional(query=None):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/int")
|
||||
def get_query_type(query: int):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/int/optional")
|
||||
def get_query_type_optional(query: int = None):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/int/default")
|
||||
def get_query_type_optional(query: int = 10):
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/param")
|
||||
def get_query_param(query=Query(None)):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/param-required")
|
||||
def get_query_param_required(query=Query(...)):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/query/param-required/int")
|
||||
def get_query_param_required_type(query: int = Query(...)):
|
||||
if query is None:
|
||||
return "foo bar"
|
||||
return f"foo bar {query}"
|
||||
|
||||
|
||||
@app.get("/cookie")
|
||||
def get_cookie(coo=Cookie(None)):
|
||||
return coo
|
||||
|
|
@ -244,23 +65,6 @@ def get_security_oauth2(sec=Security(reusable_oauth2, scopes=["read:user"])):
|
|||
return sec
|
||||
|
||||
|
||||
reusable_oauth2b = OAuth2PasswordBearer(tokenUrl="/token")
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
username: str
|
||||
|
||||
|
||||
def get_current_user(oauth_header: str = Security(reusable_oauth2b)):
|
||||
user = User(username=oauth_header)
|
||||
return user
|
||||
|
||||
|
||||
@app.get("/security/oauth2b")
|
||||
def read_current_user(current_user: User = Depends(get_current_user)):
|
||||
return current_user
|
||||
|
||||
|
||||
@app.post("/token")
|
||||
def post_token(request_data: OAuth2PasswordRequestForm = Form(...)):
|
||||
data = request_data.parse()
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue