예제 #1
0
 def __registerMiddleWares(self):
     application = loadCordsMiddleware(self.applicationObject)
     '''Load middlewares'''
     if self.__startLogSystem():
         application.middleware('http')(registerLoggerMiddleware(self.applicationObject))
     application.middleware('http')(registerConfigMiddleware(self.applicationObject))
     application.add_middleware(ContextMiddleware.with_plugins(
         plugins.CorrelationIdPlugin(),
         plugins.RequestIdPlugin(),
         plugins.DateHeaderPlugin(),
         plugins.ForwardedForPlugin(),
         plugins.UserAgentPlugin(),
     ))
from starlette import status
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.requests import Request
from starlette.responses import JSONResponse
from starlette.testclient import TestClient

from starlette_context import context, plugins
from starlette_context.header_keys import HeaderKeys
from starlette_context.middleware import RawContextMiddleware

plugins_to_use = (
    plugins.CorrelationIdPlugin(),
    plugins.RequestIdPlugin(),
    plugins.UserAgentPlugin(),
    plugins.ForwardedForPlugin(),
    plugins.DateHeaderPlugin(),
)

middleware = [Middleware(
    RawContextMiddleware,
    plugins=plugins_to_use,
)]

app = Starlette(middleware=middleware)
client = TestClient(app)


@app.route("/")
async def index(request: Request) -> JSONResponse:
    return JSONResponse(content=context.data)
예제 #3
0
def plugin():
    return plugins.UserAgentPlugin()
from starlette import status
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.requests import Request
from starlette.responses import JSONResponse, Response
from starlette.testclient import TestClient

from starlette_context import plugins
from starlette_context.header_keys import HeaderKeys
from starlette_context.middleware import ContextMiddleware
from tests.conftest import dummy_user_agent

middleware = [
    Middleware(
        ContextMiddleware,
        plugins=(plugins.UserAgentPlugin(),),
    )
]
app = Starlette(middleware=middleware)
client = TestClient(app)

headers = {HeaderKeys.user_agent: dummy_user_agent}


@app.route("/")
async def index(request: Request) -> Response:
    return JSONResponse(
        {"headers": str(request.headers.get(HeaderKeys.user_agent))}
    )