Rework middlewares, separate management to MiddlewareManager class

This commit is contained in:
Alex Root Junior 2022-02-24 01:52:42 +02:00
parent 880dd153d3
commit 49a933d2ab
No known key found for this signature in database
GPG key ID: 074C1D455EBEA4AC
6 changed files with 93 additions and 108 deletions

View file

@ -74,7 +74,7 @@ class TestDispatcher:
assert dp.update.handlers
assert dp.update.handlers[0].callback == dp._listen_update
assert dp.update.outer_middlewares
assert dp.update.outer_middleware
def test_parent_router(self, dispatcher: Dispatcher):
with pytest.raises(RuntimeError):

View file

@ -297,10 +297,9 @@ class TestTelegramEventObserver:
def test_register_middleware(self, middleware_type):
event_observer = TelegramEventObserver(Router(), "test")
middlewares = getattr(event_observer, f"{middleware_type}s")
decorator = getattr(event_observer, middleware_type)
middlewares = getattr(event_observer, middleware_type)
@decorator
@middlewares
async def my_middleware1(handler, event, data):
pass
@ -308,7 +307,7 @@ class TestTelegramEventObserver:
assert my_middleware1.__name__ == "my_middleware1"
assert my_middleware1 in middlewares
@decorator()
@middlewares()
async def my_middleware2(handler, event, data):
pass
@ -319,13 +318,13 @@ class TestTelegramEventObserver:
async def my_middleware3(handler, event, data):
pass
decorator(my_middleware3)
middlewares(my_middleware3)
assert my_middleware3 is not None
assert my_middleware3.__name__ == "my_middleware3"
assert my_middleware3 in middlewares
assert middlewares == [my_middleware1, my_middleware2, my_middleware3]
assert list(middlewares) == [my_middleware1, my_middleware2, my_middleware3]
def test_register_global_filters(self):
router = Router(use_builtin_filters=False)

View file

@ -2,7 +2,7 @@ import re
import pytest
from aiogram import Dispatcher, F
from aiogram import Dispatcher
from aiogram.dispatcher.filters import ExceptionMessageFilter, ExceptionTypeFilter
from aiogram.types import Update

View file

@ -111,8 +111,8 @@ class TestSimpleI18nMiddleware:
middleware = SimpleI18nMiddleware(i18n=i18n)
middleware.setup(router=dp)
assert middleware not in dp.update.outer_middlewares
assert middleware in dp.message.outer_middlewares
assert middleware not in dp.update.outer_middleware
assert middleware in dp.message.outer_middleware
async def test_get_unknown_locale(self, i18n: I18n):
dp = Dispatcher()