Coverage for tests/test_validate_response_recursive/app_pv2.py: 100%
22 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-05-05 00:03 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-05-05 00:03 +0000
1from typing import List 1abcdef
3from fastapi import FastAPI 1abcdef
4from pydantic import BaseModel 1abcdef
6app = FastAPI() 1abcdef
9class RecursiveItem(BaseModel): 1abcdef
10 sub_items: List["RecursiveItem"] = [] 1abcdef
11 name: str 1abcdef
14RecursiveItem.model_rebuild() 1abcdef
17class RecursiveSubitemInSubmodel(BaseModel): 1abcdef
18 sub_items2: List["RecursiveItemViaSubmodel"] = [] 1abcdef
19 name: str 1abcdef
22class RecursiveItemViaSubmodel(BaseModel): 1abcdef
23 sub_items1: List[RecursiveSubitemInSubmodel] = [] 1abcdef
24 name: str 1abcdef
27RecursiveSubitemInSubmodel.model_rebuild() 1abcdef
28RecursiveItemViaSubmodel.model_rebuild() 1abcdef
31@app.get("/items/recursive", response_model=RecursiveItem) 1abcdef
32def get_recursive(): 1abcdef
33 return {"name": "item", "sub_items": [{"name": "subitem", "sub_items": []}]} 1abcdef
36@app.get("/items/recursive-submodel", response_model=RecursiveItemViaSubmodel) 1abcdef
37def get_recursive_submodel(): 1abcdef
38 return { 1abcdef
39 "name": "item",
40 "sub_items1": [
41 {
42 "name": "subitem",
43 "sub_items2": [
44 {
45 "name": "subsubitem",
46 "sub_items1": [{"name": "subsubsubitem", "sub_items2": []}],
47 }
48 ],
49 }
50 ],
51 }