sanic/tests/test_request_data.py

47 lines
1.1 KiB
Python
Raw Normal View History

import random
2016-11-20 01:48:28 +00:00
from sanic.response import json
2017-05-15 02:49:25 +01:00
2017-05-15 02:49:25 +01:00
try:
from ujson import loads
except ImportError:
from json import loads
2016-11-20 01:48:28 +00:00
2018-08-26 15:43:14 +01:00
def test_storage(app):
2018-12-30 11:18:06 +00:00
@app.middleware("request")
2016-11-20 01:48:28 +00:00
def store(request):
2018-12-30 11:18:06 +00:00
request["user"] = "sanic"
request["sidekick"] = "tails"
del request["sidekick"]
2016-11-20 01:48:28 +00:00
2018-12-30 11:18:06 +00:00
@app.route("/")
2016-11-20 01:48:28 +00:00
def handler(request):
2018-12-30 11:18:06 +00:00
return json(
{"user": request.get("user"), "sidekick": request.get("sidekick")}
)
2016-11-20 01:48:28 +00:00
2018-12-30 11:18:06 +00:00
request, response = app.test_client.get("/")
2016-11-20 01:48:28 +00:00
response_json = loads(response.text)
2018-12-30 11:18:06 +00:00
assert response_json["user"] == "sanic"
assert response_json.get("sidekick") is None
2018-08-26 15:43:14 +01:00
def test_app_injection(app):
expected = random.choice(range(0, 100))
2018-12-30 11:18:06 +00:00
@app.listener("after_server_start")
async def inject_data(app, loop):
app.injected = expected
2018-12-30 11:18:06 +00:00
@app.get("/")
async def handler(request):
2018-12-30 11:18:06 +00:00
return json({"injected": request.app.injected})
2018-12-30 11:18:06 +00:00
request, response = app.test_client.get("/")
response_json = loads(response.text)
2018-12-30 11:18:06 +00:00
assert response_json["injected"] == expected