Skip to content

Commit 679179f

Browse files
committed
Fix ordering of priorities
1 parent 579deaa commit 679179f

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

sanic_ext/config.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
from sanic.signals import Event
1111

1212

13+
PRIORITY = 100_000_000
14+
15+
1316
class Config(SanicConfig):
1417
def __init__(
1518
self,
@@ -37,6 +40,7 @@ def __init__(
3740
http_auto_options: bool = True,
3841
http_auto_trace: bool = False,
3942
injection_signal: Union[str, Event] = Event.HTTP_ROUTING_AFTER,
43+
injection_priority: int = PRIORITY,
4044
injection_load_custom_constants: bool = False,
4145
logging: bool = False,
4246
logging_queue_max_size: int = 4096,
@@ -94,6 +98,7 @@ def __init__(
9498
self.HTTP_AUTO_OPTIONS = http_auto_options
9599
self.HTTP_AUTO_TRACE = http_auto_trace
96100
self.INJECTION_SIGNAL = injection_signal
101+
self.INJECTION_PRIORITY = injection_priority
97102
self.INJECTION_LOAD_CUSTOM_CONSTANTS = injection_load_custom_constants
98103
self.LOGGING = logging
99104
self.LOGGING_QUEUE_MAX_SIZE = logging_queue_max_size

sanic_ext/extensions/http/methods.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
from sanic.exceptions import SanicException
99
from sanic.response import empty, raw
1010

11-
from ...utils.route import clean_route_name
12-
from ..openapi import openapi
11+
from sanic_ext.config import PRIORITY
12+
from sanic_ext.extensions.openapi import openapi
13+
from sanic_ext.utils.route import clean_route_name
1314

1415

1516
def add_http_methods(
@@ -66,7 +67,7 @@ async def trace_handler(request):
6667
)
6768
return raw(message, content_type="message/http")
6869

69-
@app.before_server_start
70+
@app.before_server_start(priority=PRIORITY + 1)
7071
def _add_handlers(app, _):
7172
nonlocal auto_head
7273
nonlocal auto_options

sanic_ext/extensions/injection/injector.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@
77
from sanic import Sanic
88
from sanic.constants import HTTP_METHODS
99

10+
from sanic_ext.config import PRIORITY
1011
from sanic_ext.extensions.injection.constructor import gather_args
1112

1213
from .registry import ConstantRegistry, InjectionRegistry, SignatureRegistry
1314

1415

15-
PRIORITY = 1_000_000
16-
17-
1816
def add_injection(
1917
app: Sanic,
2018
injection_registry: InjectionRegistry,
@@ -24,7 +22,7 @@ def add_injection(
2422
app, injection_registry, constant_registry
2523
)
2624

27-
@app.listener("before_server_start", priority=PRIORITY - 1)
25+
@app.listener("before_server_start", priority=PRIORITY)
2826
async def finalize_injections(app: Sanic, _):
2927
router_converters = set(
3028
allowed[0] for allowed in app.router.regex_types.values()
@@ -40,8 +38,9 @@ async def finalize_injections(app: Sanic, _):
4038
injection_registry.finalize(app, constant_registry, router_types)
4139

4240
injection_signal = app.ext.config.INJECTION_SIGNAL
41+
injection_priority = app.ext.config.INJECTION_PRIORITY
4342

44-
@app.signal(injection_signal)
43+
@app.signal(injection_signal, priority=injection_priority)
4544
async def inject_kwargs(request, **_):
4645
nonlocal signature_registry
4746

tests/extensions/injection/test_injection_config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def test_add_injection_uses_signal_config():
3535

3636
app.signal = Mock(return_value=Mock())
3737
app.ext.config.INJECTION_SIGNAL = "random_string"
38+
app.ext.config.INJECTION_PRIORITY = 99999
3839
add_injection(app, Mock(), Mock())
3940

40-
app.signal.assert_called_once_with("random_string")
41+
app.signal.assert_called_once_with("random_string", priority=99999)

0 commit comments

Comments
 (0)