Add priority to register_middleware method (#2636)
This commit is contained in:
@@ -3,7 +3,7 @@ from functools import partial
|
||||
import pytest
|
||||
|
||||
from sanic import Sanic
|
||||
from sanic.middleware import Middleware
|
||||
from sanic.middleware import Middleware, MiddlewareLocation
|
||||
from sanic.response import json
|
||||
|
||||
|
||||
@@ -40,6 +40,86 @@ def reset_middleware():
|
||||
Middleware.reset_count()
|
||||
|
||||
|
||||
def test_add_register_priority(app: Sanic):
|
||||
def foo(*_):
|
||||
...
|
||||
|
||||
app.register_middleware(foo, priority=999)
|
||||
assert len(app.request_middleware) == 1
|
||||
assert len(app.response_middleware) == 0
|
||||
assert app.request_middleware[0].priority == 999 # type: ignore
|
||||
app.register_middleware(foo, attach_to="response", priority=999)
|
||||
assert len(app.request_middleware) == 1
|
||||
assert len(app.response_middleware) == 1
|
||||
assert app.response_middleware[0].priority == 999 # type: ignore
|
||||
|
||||
|
||||
def test_add_register_named_priority(app: Sanic):
|
||||
def foo(*_):
|
||||
...
|
||||
|
||||
app.register_named_middleware(foo, route_names=["foo"], priority=999)
|
||||
assert len(app.named_request_middleware) == 1
|
||||
assert len(app.named_response_middleware) == 0
|
||||
assert app.named_request_middleware["foo"][0].priority == 999 # type: ignore
|
||||
app.register_named_middleware(
|
||||
foo, attach_to="response", route_names=["foo"], priority=999
|
||||
)
|
||||
assert len(app.named_request_middleware) == 1
|
||||
assert len(app.named_response_middleware) == 1
|
||||
assert app.named_response_middleware["foo"][0].priority == 999 # type: ignore
|
||||
|
||||
|
||||
def test_add_decorator_priority(app: Sanic):
|
||||
def foo(*_):
|
||||
...
|
||||
|
||||
app.middleware(foo, priority=999)
|
||||
assert len(app.request_middleware) == 1
|
||||
assert len(app.response_middleware) == 0
|
||||
assert app.request_middleware[0].priority == 999 # type: ignore
|
||||
app.middleware(foo, attach_to="response", priority=999)
|
||||
assert len(app.request_middleware) == 1
|
||||
assert len(app.response_middleware) == 1
|
||||
assert app.response_middleware[0].priority == 999 # type: ignore
|
||||
|
||||
|
||||
def test_add_convenience_priority(app: Sanic):
|
||||
def foo(*_):
|
||||
...
|
||||
|
||||
app.on_request(foo, priority=999)
|
||||
assert len(app.request_middleware) == 1
|
||||
assert len(app.response_middleware) == 0
|
||||
assert app.request_middleware[0].priority == 999 # type: ignore
|
||||
app.on_response(foo, priority=999)
|
||||
assert len(app.request_middleware) == 1
|
||||
assert len(app.response_middleware) == 1
|
||||
assert app.response_middleware[0].priority == 999 # type: ignore
|
||||
|
||||
|
||||
def test_add_conflicting_priority(app: Sanic):
|
||||
def foo(*_):
|
||||
...
|
||||
|
||||
middleware = Middleware(foo, MiddlewareLocation.REQUEST, priority=998)
|
||||
app.register_middleware(middleware=middleware, priority=999)
|
||||
assert app.request_middleware[0].priority == 999 # type: ignore
|
||||
middleware.priority == 998
|
||||
|
||||
|
||||
def test_add_conflicting_priority_named(app: Sanic):
|
||||
def foo(*_):
|
||||
...
|
||||
|
||||
middleware = Middleware(foo, MiddlewareLocation.REQUEST, priority=998)
|
||||
app.register_named_middleware(
|
||||
middleware=middleware, route_names=["foo"], priority=999
|
||||
)
|
||||
assert app.named_request_middleware["foo"][0].priority == 999 # type: ignore
|
||||
middleware.priority == 998
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"expected,priorities",
|
||||
PRIORITY_TEST_CASES,
|
||||
|
||||
Reference in New Issue
Block a user