fastapi
1from fastapi import FastAPI
2from fastapi.testclient import TestClient
3
4from .utils import needs_py310
5
6
7@needs_py310
8def test_typing():
9types = {
10list[int]: [1, 2, 3],
11dict[str, list[int]]: {"a": [1, 2, 3], "b": [4, 5, 6]},
12set[int]: [1, 2, 3], # `set` is converted to `list`
13tuple[int, ...]: [1, 2, 3], # `tuple` is converted to `list`
14}
15for test_type, expect in types.items():
16app = FastAPI()
17
18@app.post("/", response_model=test_type)
19def post_endpoint(input: test_type):
20return input
21
22res = TestClient(app).post("/", json=expect)
23assert res.status_code == 200, res.json()
24assert res.json() == expect
25