mirror of https://github.com/tiangolo/fastapi.git
Merge branch 'master' into fix/variable-shadowing-in-routing
This commit is contained in:
commit
7f75484998
|
|
@ -11,6 +11,10 @@ hide:
|
|||
|
||||
* 📝 Update tech stack in project generation docs. PR [#14472](https://github.com/fastapi/fastapi/pull/14472) by [@alejsdev](https://github.com/alejsdev).
|
||||
|
||||
### Internal
|
||||
|
||||
* ✅ Add test for Pydantic v2, dataclasses, UUID, and `__annotations__`. PR [#14477](https://github.com/fastapi/fastapi/pull/14477) by [@tiangolo](https://github.com/tiangolo).
|
||||
|
||||
## 0.124.0
|
||||
|
||||
### Features
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import uuid
|
||||
from dataclasses import dataclass, field
|
||||
from typing import List, Union
|
||||
|
||||
from dirty_equals import IsUUID
|
||||
from fastapi import FastAPI
|
||||
from fastapi.testclient import TestClient
|
||||
from inline_snapshot import snapshot
|
||||
|
||||
|
||||
@dataclass
|
||||
class Item:
|
||||
id: uuid.UUID
|
||||
name: str
|
||||
price: float
|
||||
tags: List[str] = field(default_factory=list)
|
||||
description: Union[str, None] = None
|
||||
tax: Union[float, None] = None
|
||||
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.get("/item", response_model=Item)
|
||||
async def read_item():
|
||||
return {
|
||||
"id": uuid.uuid4(),
|
||||
"name": "Island In The Moon",
|
||||
"price": 12.99,
|
||||
"description": "A place to be be playin' and havin' fun",
|
||||
"tags": ["breater"],
|
||||
}
|
||||
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
|
||||
def test_annotations():
|
||||
response = client.get("/item")
|
||||
assert response.status_code == 200, response.text
|
||||
assert response.json() == snapshot(
|
||||
{
|
||||
"id": IsUUID(),
|
||||
"name": "Island In The Moon",
|
||||
"price": 12.99,
|
||||
"tags": ["breater"],
|
||||
"description": "A place to be be playin' and havin' fun",
|
||||
"tax": None,
|
||||
}
|
||||
)
|
||||
Loading…
Reference in New Issue