44973125c1
Fixes #1847 Adds a test to ensure fix is correct Adds an example which demonstrates correct blueprint-middlware execution order behavior.
44 lines
1012 B
Python
44 lines
1012 B
Python
from sanic import Sanic, Blueprint
|
|
from sanic.response import text
|
|
'''
|
|
Demonstrates that blueprint request middleware are executed in the order they
|
|
are added. And blueprint response middleware are executed in _reverse_ order.
|
|
On a valid request, it should print "1 2 3 6 5 4" to terminal
|
|
'''
|
|
|
|
app = Sanic(__name__)
|
|
|
|
bp = Blueprint("bp_"+__name__)
|
|
|
|
@bp.middleware('request')
|
|
def request_middleware_1(request):
|
|
print('1')
|
|
|
|
@bp.middleware('request')
|
|
def request_middleware_2(request):
|
|
print('2')
|
|
|
|
@bp.middleware('request')
|
|
def request_middleware_3(request):
|
|
print('3')
|
|
|
|
@bp.middleware('response')
|
|
def resp_middleware_4(request, response):
|
|
print('4')
|
|
|
|
@bp.middleware('response')
|
|
def resp_middleware_5(request, response):
|
|
print('5')
|
|
|
|
@bp.middleware('response')
|
|
def resp_middleware_6(request, response):
|
|
print('6')
|
|
|
|
@bp.route('/')
|
|
def pop_handler(request):
|
|
return text('hello world')
|
|
|
|
app.blueprint(bp, url_prefix='/bp')
|
|
|
|
app.run(host="0.0.0.0", port=8000, debug=True, auto_reload=False)
|