From 6f91009b6578afd321ee1f4c546d2fc3bc15a3ce Mon Sep 17 00:00:00 2001 From: Anushka Srivastava Date: Wed, 16 Jul 2025 18:42:09 +0530 Subject: [PATCH] Add minimal reproduction for form field metadata bug --- test_issue_13471/fastapi | 1 + test_issue_13471/form_dependency_test.py | 19 +++++++++++++++++++ test_issue_13471/form_metadata_repro.py | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 160000 test_issue_13471/fastapi create mode 100644 test_issue_13471/form_dependency_test.py create mode 100644 test_issue_13471/form_metadata_repro.py diff --git a/test_issue_13471/fastapi b/test_issue_13471/fastapi new file mode 160000 index 000000000..27f424075 --- /dev/null +++ b/test_issue_13471/fastapi @@ -0,0 +1 @@ +Subproject commit 27f4240750eb5598aea4bc792c425efcd74a7393 diff --git a/test_issue_13471/form_dependency_test.py b/test_issue_13471/form_dependency_test.py new file mode 100644 index 000000000..2e6ea4c82 --- /dev/null +++ b/test_issue_13471/form_dependency_test.py @@ -0,0 +1,19 @@ +from fastapi import FastAPI, Form, Depends +from pydantic import BaseModel +from fastapi.responses import JSONResponse + +app = FastAPI() + +class User(BaseModel): + name: str + age: int + +def get_user( + name: str = Form(..., description="The user's name"), + age: int = Form(..., description="The user's age") +) -> User: + return User(name=name, age=age) + +@app.post("/submit") +def submit(user: User = Depends(get_user)): + return JSONResponse(content={"name": user.name, "age": user.age}) \ No newline at end of file diff --git a/test_issue_13471/form_metadata_repro.py b/test_issue_13471/form_metadata_repro.py new file mode 100644 index 000000000..2e6ea4c82 --- /dev/null +++ b/test_issue_13471/form_metadata_repro.py @@ -0,0 +1,19 @@ +from fastapi import FastAPI, Form, Depends +from pydantic import BaseModel +from fastapi.responses import JSONResponse + +app = FastAPI() + +class User(BaseModel): + name: str + age: int + +def get_user( + name: str = Form(..., description="The user's name"), + age: int = Form(..., description="The user's age") +) -> User: + return User(name=name, age=age) + +@app.post("/submit") +def submit(user: User = Depends(get_user)): + return JSONResponse(content={"name": user.name, "age": user.age}) \ No newline at end of file