fastapi/tests/test_issue_13056_openapi_an...

30 lines
708 B
Python

from typing import Annotated, Union
from fastapi import FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
# This is the ForwardRef issue context
next_item: Annotated[Union["Item", None], None] = None
@app.get("/", response_model=Item)
def read_root():
return Item(name="root")
client = TestClient(app)
def test_issue_13056_openapi_annotated_forwardref():
# This triggers the schema generation where the crash usually happens
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
data = response.json()
assert data["components"]["schemas"]["Item"]