Coverage for tests / test_dependency_security_overrides.py: 100%
29 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-12 18:15 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-12 18:15 +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 1kflgmh
12def get_user_override(required_scopes: SecurityScopes): 1abecd
13 return "alice", required_scopes.scopes 1iej
16def get_data(): 1abcd
17 return [1, 2, 3] 1kilemj
20def get_data_override(): 1abcd
21 return [3, 4, 5] 1fgh
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} 1kfilgemhj
32client = TestClient(app) 1abcd
35def test_normal(): 1abcd
36 response = client.get("/user") 1klm
37 assert response.json() == { 1klm
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 1fgh
46 response = client.get("/user") 1fgh
47 assert response.json() == { 1fgh
48 "user": "john",
49 "scopes": ["foo", "bar"],
50 "data": [3, 4, 5],
51 }
52 app.dependency_overrides = {} 1fgh
55def test_override_security(): 1abcd
56 app.dependency_overrides[get_user] = get_user_override 1iej
57 response = client.get("/user") 1iej
58 assert response.json() == { 1iej
59 "user": "alice",
60 "scopes": ["foo", "bar"],
61 "data": [1, 2, 3],
62 }
63 app.dependency_overrides = {} 1iej