|
@ -1,4 +1,4 @@ |
|
|
from fastapi import APIRouter, FastAPI, WebSocket |
|
|
from fastapi import APIRouter, Depends, FastAPI, WebSocket |
|
|
from fastapi.testclient import TestClient |
|
|
from fastapi.testclient import TestClient |
|
|
|
|
|
|
|
|
router = APIRouter() |
|
|
router = APIRouter() |
|
@ -34,6 +34,19 @@ async def routerindex(websocket: WebSocket): |
|
|
await websocket.close() |
|
|
await websocket.close() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def ws_dependency(): |
|
|
|
|
|
return "Socket Dependency" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.websocket("/router-ws-depends/") |
|
|
|
|
|
async def router_ws_decorator_depends( |
|
|
|
|
|
websocket: WebSocket, data=Depends(ws_dependency) |
|
|
|
|
|
): |
|
|
|
|
|
await websocket.accept() |
|
|
|
|
|
await websocket.send_text(data) |
|
|
|
|
|
await websocket.close() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.include_router(router) |
|
|
app.include_router(router) |
|
|
app.include_router(prefix_router, prefix="/prefix") |
|
|
app.include_router(prefix_router, prefix="/prefix") |
|
|
|
|
|
|
|
@ -64,3 +77,16 @@ def test_router2(): |
|
|
with client.websocket_connect("/router2") as websocket: |
|
|
with client.websocket_connect("/router2") as websocket: |
|
|
data = websocket.receive_text() |
|
|
data = websocket.receive_text() |
|
|
assert data == "Hello, router!" |
|
|
assert data == "Hello, router!" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_router_ws_depends(): |
|
|
|
|
|
client = TestClient(app) |
|
|
|
|
|
with client.websocket_connect("/router-ws-depends/") as websocket: |
|
|
|
|
|
assert websocket.receive_text() == "Socket Dependency" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_router_ws_depends_with_override(): |
|
|
|
|
|
client = TestClient(app) |
|
|
|
|
|
app.dependency_overrides[ws_dependency] = lambda: "Override" |
|
|
|
|
|
with client.websocket_connect("/router-ws-depends/") as websocket: |
|
|
|
|
|
assert websocket.receive_text() == "Override" |
|
|