Application
AppUnit includes an application class AppUnit
which is base class of ASGI
or CLI
application.
from starlette.middleware.base import RequestResponseEndpoint
from starlette.requests import Request
from appunit.applications import AppUnit
app = AppUnit(debug=True)
@app.on_startup()
def startup():
print("Starting application ...")
@app.middleware()
async def simple_middleware(request: Request, call_next: RequestResponseEndpoint):
print("Hello middleware!")
return await call_next(request)
@app.get("/")
def index():
return {"success": True}
if __name__ == "__main__":
app.run()
Instantiating the application
class
appunit.applications.AppUnit
(debug=False, exception_handlers=None, middleware=None, response_class=None, modules=None, auto_bind=False)Creates an application instance.
Parameters:
- debug - Boolean indicating if debug tracebacks should be returned on errors.
- exception_handlers - A dictionary mapping either integer status codes, or exception class types onto callables which handle the exceptions.
- middleware - A list of middleware (Middleware class or function) to run for every request.
- response_class - Default response class used in routes.
Default is
JSONResponse.
- modules - A list of configuration modules.
- auto_bind - Whether to automatically bind missing types.