Coverage for tests / test_validate_response_recursive / app.py: 100%
21 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-12 18:15 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-12 18:15 +0000
1from fastapi import FastAPI 1abcd
2from pydantic import BaseModel 1abcd
4app = FastAPI() 1abcd
7class RecursiveItem(BaseModel): 1abcd
8 sub_items: list["RecursiveItem"] = [] 1abcd
9 name: str 1abcd
12class RecursiveSubitemInSubmodel(BaseModel): 1abcd
13 sub_items2: list["RecursiveItemViaSubmodel"] = [] 1abcd
14 name: str 1abcd
17class RecursiveItemViaSubmodel(BaseModel): 1abcd
18 sub_items1: list[RecursiveSubitemInSubmodel] = [] 1abcd
19 name: str 1abcd
22RecursiveItem.model_rebuild() 1abcd
23RecursiveSubitemInSubmodel.model_rebuild() 1abcd
24RecursiveItemViaSubmodel.model_rebuild() 1abcd
27@app.get("/items/recursive", response_model=RecursiveItem) 1abcd
28def get_recursive(): 1abcd
29 return {"name": "item", "sub_items": [{"name": "subitem", "sub_items": []}]} 1efg
32@app.get("/items/recursive-submodel", response_model=RecursiveItemViaSubmodel) 1abcd
33def get_recursive_submodel(): 1abcd
34 return { 1efg
35 "name": "item",
36 "sub_items1": [
37 {
38 "name": "subitem",
39 "sub_items2": [
40 {
41 "name": "subsubitem",
42 "sub_items1": [{"name": "subsubsubitem", "sub_items2": []}],
43 }
44 ],
45 }
46 ],
47 }