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