sanic/tests/test_handler.py

37 lines
844 B
Python

from sanic.app import Sanic
from sanic.response import empty
from sanic.signals import Event
def test_handler_operation_order(app: Sanic):
operations = []
@app.on_request
async def on_request(_):
nonlocal operations
operations.append(1)
@app.on_response
async def on_response(*_):
nonlocal operations
operations.append(5)
@app.get("/")
async def handler(_):
nonlocal operations
operations.append(3)
return empty()
@app.signal(Event.HTTP_HANDLER_BEFORE)
async def handler_before(**_):
nonlocal operations
operations.append(2)
@app.signal(Event.HTTP_HANDLER_AFTER)
async def handler_after(**_):
nonlocal operations
operations.append(4)
app.test_client.get("/")
assert operations == [1, 2, 3, 4, 5]