37 lines
844 B
Python
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]
|