Coverage for tests / test_dependency_security_overrides.py: 100%
29 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
1from fastapi import Depends, FastAPI, Security 1abcd
2from fastapi.security import SecurityScopes 1abcd
3from fastapi.testclient import TestClient 1abcd
5app = FastAPI() 1abcd
8def get_user(required_scopes: SecurityScopes): 1abcd
9 return "john", required_scopes.scopes 1lemfngoh
12def get_user_override(required_scopes: SecurityScopes): 1abcd
13 return "alice", required_scopes.scopes 1ipjk
16def get_data(): 1abcd
17 return [1, 2, 3] 1limnjok
20def get_data_override(): 1abcd
21 return [3, 4, 5] 1efgh
24@app.get("/user") 1abcd
25def read_user( 1abcd
26 user_data: tuple[str, list[str]] = Security(get_user, scopes=["foo", "bar"]),
27 data: list[int] = Depends(get_data),
28):
29 return {"user": user_data[0], "scopes": user_data[1], "data": data} 1leimfngjohk
32client = TestClient(app) 1abcd
35def test_normal(): 1abcd
36 response = client.get("/user") 1lmno
37 assert response.json() == { 1lmno
38 "user": "john",
39 "scopes": ["foo", "bar"],
40 "data": [1, 2, 3],
41 }
44def test_override_data(): 1abcd
45 app.dependency_overrides[get_data] = get_data_override 1efgh
46 response = client.get("/user") 1efgh
47 assert response.json() == { 1efgh
48 "user": "john",
49 "scopes": ["foo", "bar"],
50 "data": [3, 4, 5],
51 }
52 app.dependency_overrides = {} 1efgh
55def test_override_security(): 1abcd
56 app.dependency_overrides[get_user] = get_user_override 1ipjk
57 response = client.get("/user") 1ipjk
58 assert response.json() == { 1ipjk
59 "user": "alice",
60 "scopes": ["foo", "bar"],
61 "data": [1, 2, 3],
62 }
63 app.dependency_overrides = {} 1ipjk