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!!"