sanic/tests/test_request_data.py
2018-12-30 13:18:06 +02:00

46 lines
1.1 KiB
Python

import random
from sanic.response import json
try:
from ujson import loads
except ImportError:
from json import loads
def test_storage(app):
@app.middleware("request")
def store(request):
request["user"] = "sanic"
request["sidekick"] = "tails"
del request["sidekick"]
@app.route("/")
def handler(request):
return json(
{"user": request.get("user"), "sidekick": request.get("sidekick")}
)
request, response = app.test_client.get("/")
response_json = loads(response.text)
assert response_json["user"] == "sanic"
assert response_json.get("sidekick") is None
def test_app_injection(app):
expected = random.choice(range(0, 100))
@app.listener("after_server_start")
async def inject_data(app, loop):
app.injected = expected
@app.get("/")
async def handler(request):
return json({"injected": request.app.injected})
request, response = app.test_client.get("/")
response_json = loads(response.text)
assert response_json["injected"] == expected