Coverage for tests/test_http_connection_injection.py: 100%
24 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-05-05 00:03 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-05-05 00:03 +0000
1from fastapi import Depends, FastAPI 1abcdef
2from fastapi.requests import HTTPConnection 1abcdef
3from fastapi.testclient import TestClient 1abcdef
4from starlette.websockets import WebSocket 1abcdef
6app = FastAPI() 1abcdef
7app.state.value = 42 1abcdef
10async def extract_value_from_http_connection(conn: HTTPConnection): 1abcdef
11 return conn.app.state.value 1mgnhoipjqkrl
14@app.get("/http") 1abcdef
15async def get_value_by_http(value: int = Depends(extract_value_from_http_connection)): 1abcdef
16 return value 1mnopqr
19@app.websocket("/ws") 1abcdef
20async def get_value_by_ws( 1abcdef
21 websocket: WebSocket, value: int = Depends(extract_value_from_http_connection)
22):
23 await websocket.accept() 1ghijkl
24 await websocket.send_json(value) 1ghijkl
25 await websocket.close() 1ghijkl
28client = TestClient(app) 1abcdef
31def test_value_extracting_by_http(): 1abcdef
32 response = client.get("/http") 1mnopqr
33 assert response.status_code == 200 1mnopqr
34 assert response.json() == 42 1mnopqr
37def test_value_extracting_by_ws(): 1abcdef
38 with client.websocket_connect("/ws") as websocket: 1ghijkl
39 assert websocket.receive_json() == 42 1ghijkl