-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_middleware_starlette.py
38 lines (31 loc) · 1012 Bytes
/
test_middleware_starlette.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from starlette.applications import Starlette
from starlette.requests import Request
from starlette.middleware import Middleware
from starlette.responses import JSONResponse
from starlette.routing import Route
from starlette.testclient import TestClient
from rugged.middleware import RuggedMiddleware
def test_starlette_usage() -> None:
async def invite(request: Request) -> JSONResponse:
return JSONResponse(await request.json())
app = Starlette(
routes=[Route("/invite", methods=["POST"], endpoint=invite)],
middleware=[
Middleware(RuggedMiddleware),
],
)
client = TestClient(app)
response = client.post(
"/invite",
json={
"emails[]": ["foo@example.com", "bar@example.com", "baz@example.com"],
},
)
assert response.status_code == 200
assert response.json() == {
"emails": [
"foo@example.com",
"bar@example.com",
"baz@example.com",
],
}