22 lines
537 B
Python
22 lines
537 B
Python
|
import asyncio
|
||
|
|
||
|
from asyncio import CancelledError
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from sanic import Request, Sanic, json
|
||
|
|
||
|
|
||
|
def test_can_raise_in_handler(app: Sanic):
|
||
|
@app.get("/")
|
||
|
async def handler(request: Request):
|
||
|
raise CancelledError("STOP!!")
|
||
|
|
||
|
@app.exception(CancelledError)
|
||
|
async def handle_cancel(request: Request, exc: CancelledError):
|
||
|
return json({"message": exc.args[0]}, status=418)
|
||
|
|
||
|
_, response = app.test_client.get("/")
|
||
|
assert response.status == 418
|
||
|
assert response.json["message"] == "STOP!!"
|