Browse Source
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Motov Yurii <[email protected]> Co-authored-by: Yurii Motov <[email protected]> Co-authored-by: Sebastián Ramírez <[email protected]>pull/14432/head
committed by
GitHub
2 changed files with 37 additions and 1 deletions
@ -0,0 +1,35 @@ |
|||
from typing import Optional |
|||
|
|||
from fastapi import FastAPI, File, Form |
|||
from starlette.testclient import TestClient |
|||
from typing_extensions import Annotated |
|||
|
|||
app = FastAPI() |
|||
|
|||
|
|||
@app.post("/urlencoded") |
|||
async def post_url_encoded(age: Annotated[Optional[int], Form()] = None): |
|||
return age |
|||
|
|||
|
|||
@app.post("/multipart") |
|||
async def post_multi_part( |
|||
age: Annotated[Optional[int], Form()] = None, |
|||
file: Annotated[Optional[bytes], File()] = None, |
|||
): |
|||
return {"file": file, "age": age} |
|||
|
|||
|
|||
client = TestClient(app) |
|||
|
|||
|
|||
def test_form_default_url_encoded(): |
|||
response = client.post("/urlencoded", data={"age": ""}) |
|||
assert response.status_code == 200 |
|||
assert response.text == "null" |
|||
|
|||
|
|||
def test_form_default_multi_part(): |
|||
response = client.post("/multipart", data={"age": ""}) |
|||
assert response.status_code == 200 |
|||
assert response.json() == {"file": None, "age": None} |
|||
Loading…
Reference in new issue