From 5e5678611986e7952d78f27e0bfe18ff87800001 Mon Sep 17 00:00:00 2001 From: darksidecat <58224121+darksidecat@users.noreply.github.com> Date: Sat, 23 Oct 2021 12:25:43 +0300 Subject: [PATCH] add tests for routers chains --- tests/test_dispatcher/test_router.py | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/test_dispatcher/test_router.py b/tests/test_dispatcher/test_router.py index 980e5f34..c021d46b 100644 --- a/tests/test_dispatcher/test_router.py +++ b/tests/test_dispatcher/test_router.py @@ -134,3 +134,48 @@ class TestRouter: r2.message.register(handler) assert await r1.propagate_event(update_type="message", event=None) is UNHANDLED + + async def test_router_chain(self): + r1 = Router(name="Router 1") + r2_1 = Router(name="Router 2-1") + r2_2 = Router(name="Router 2-2") + r3 = Router(name="Router 3") + + r1.include_router(r2_1) + r1.include_router(r2_2) + r2_1.include_router(r3) + + assert tuple(r1.chain) == (r1, r2_1, r3, r2_2) + assert tuple(r2_1.chain) == (r2_1, r1, r3) + assert tuple(r3.chain) == (r3, r2_1, r1) + assert tuple(r2_2.chain) == (r2_2, r1) + + async def test_router_chain_tail(self): + r1 = Router(name="Router 1") + r2_1 = Router(name="Router 2-1") + r2_2 = Router(name="Router 2-2") + r3 = Router(name="Router 3") + + r1.include_router(r2_1) + r1.include_router(r2_2) + r2_1.include_router(r3) + + assert tuple(r1.chain_tail) == (r1, r2_1, r3, r2_2) + assert tuple(r2_1.chain_tail) == (r2_1, r3) + assert tuple(r2_2.chain_tail) == (r2_2,) + assert tuple(r3.chain_tail) == (r3,) + + async def test_router_chain_head(self): + r1 = Router(name="Router 1") + r2_1 = Router(name="Router 2-1") + r2_2 = Router(name="Router 2-2") + r3 = Router(name="Router 3") + + r1.include_router(r2_1) + r1.include_router(r2_2) + r2_1.include_router(r3) + + assert tuple(r1.chain_head) == (r1,) + assert tuple(r2_1.chain_head) == (r2_1, r1) + assert tuple(r2_2.chain_head) == (r2_2, r1) + assert tuple(r3.chain_head) == (r3, r2_1, r1)