48 lines
1.1 KiB
Python
48 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
|