Coverage for tests/test_generic_parameterless_depends.py: 100%
29 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1from typing import TypeVar 1abcdefg
3from fastapi import Depends, FastAPI 1abcdefg
4from fastapi.testclient import TestClient 1abcdefg
5from typing_extensions import Annotated 1abcdefg
7app = FastAPI() 1abcdefg
9T = TypeVar("T") 1abcdefg
11Dep = Annotated[T, Depends()] 1abcdefg
14class A: 1abcdefg
15 pass 1abcdefg
18class B: 1abcdefg
19 pass 1abcdefg
22@app.get("/a") 1abcdefg
23async def a(dep: Dep[A]): 1abcdefg
24 return {"cls": dep.__class__.__name__} 1hijklmn
27@app.get("/b") 1abcdefg
28async def b(dep: Dep[B]): 1abcdefg
29 return {"cls": dep.__class__.__name__} 1hijklmn
32client = TestClient(app) 1abcdefg
35def test_generic_parameterless_depends(): 1abcdefg
36 response = client.get("/a") 1hijklmn
37 assert response.status_code == 200, response.text 1hijklmn
38 assert response.json() == {"cls": "A"} 1hijklmn
40 response = client.get("/b") 1hijklmn
41 assert response.status_code == 200, response.text 1hijklmn
42 assert response.json() == {"cls": "B"} 1hijklmn
45def test_openapi_schema(): 1abcdefg
46 response = client.get("/openapi.json") 1opqrstu
47 assert response.status_code == 200, response.text 1opqrstu
48 assert response.json() == { 1opqrstu
49 "info": {"title": "FastAPI", "version": "0.1.0"},
50 "openapi": "3.1.0",
51 "paths": {
52 "/a": {
53 "get": {
54 "operationId": "a_a_get",
55 "responses": {
56 "200": {
57 "content": {"application/json": {"schema": {}}},
58 "description": "Successful Response",
59 }
60 },
61 "summary": "A",
62 }
63 },
64 "/b": {
65 "get": {
66 "operationId": "b_b_get",
67 "responses": {
68 "200": {
69 "content": {"application/json": {"schema": {}}},
70 "description": "Successful Response",
71 }
72 },
73 "summary": "B",
74 }
75 },
76 },
77 }