diff --git a/tests/test_dispatcher/test_event/test_telegram.py b/tests/test_dispatcher/test_event/test_telegram.py index 5a77d7fd..13f70503 100644 --- a/tests/test_dispatcher/test_event/test_telegram.py +++ b/tests/test_dispatcher/test_event/test_telegram.py @@ -264,3 +264,17 @@ class TestTelegramEventObserver: assert await r1.message.trigger(None) is REJECTED assert await r2.message.trigger(None) is None + + @pytest.mark.asyncio + async def test_global_filter_in_nested_router(self): + r1 = Router() + r2 = Router() + + async def handler(evt): + return evt + + r1.include_router(r2) + r1.message.filter(lambda evt: False) + r2.message.register(handler) + + assert await r1.message.trigger(None) is REJECTED diff --git a/tests/test_dispatcher/test_router.py b/tests/test_dispatcher/test_router.py index c84239b1..1516c33c 100644 --- a/tests/test_dispatcher/test_router.py +++ b/tests/test_dispatcher/test_router.py @@ -1,6 +1,6 @@ import pytest -from aiogram.dispatcher.event.bases import SkipHandler, skip +from aiogram.dispatcher.event.bases import SkipHandler, skip, UNHANDLED from aiogram.dispatcher.router import Router from aiogram.utils.warnings import CodeHasNoEffect @@ -122,3 +122,17 @@ class TestRouter: skip() with pytest.raises(SkipHandler, match="KABOOM"): skip("KABOOM") + + @pytest.mark.asyncio + async def test_global_filter_in_nested_router(self): + r1 = Router() + r2 = Router() + + async def handler(evt): + return evt + + r1.include_router(r2) + r1.message.filter(lambda evt: False) + r2.message.register(handler) + + assert await r1.propagate_event(update_type="message", event=None) is UNHANDLED