mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Add After.goto coverage for scene middleware context (#1687)
This commit is contained in:
parent
33cf9b9a99
commit
f764202e47
1 changed files with 47 additions and 1 deletions
|
|
@ -5,7 +5,7 @@ from typing import Any
|
|||
from aiogram import BaseMiddleware, Dispatcher
|
||||
from aiogram.enums import ChatType
|
||||
from aiogram.filters import CommandStart
|
||||
from aiogram.fsm.scene import Scene, SceneRegistry, on
|
||||
from aiogram.fsm.scene import After, Scene, SceneRegistry, on
|
||||
from aiogram.types import Chat, Message, TelegramObject, Update, User
|
||||
from tests.mocked_bot import MockedBot
|
||||
|
||||
|
|
@ -35,6 +35,12 @@ class StartScene(Scene, state="start"):
|
|||
await self.wizard.goto(TargetScene)
|
||||
|
||||
|
||||
class StartSceneWithAfter(Scene, state="start_with_after"):
|
||||
@on.message(after=After.goto(TargetScene))
|
||||
async def goto_target_with_after(self, message: Message) -> None:
|
||||
pass
|
||||
|
||||
|
||||
async def test_scene_goto_preserves_message_middleware_data(bot: MockedBot) -> None:
|
||||
dp = Dispatcher()
|
||||
registry = SceneRegistry(dp)
|
||||
|
|
@ -58,3 +64,43 @@ async def test_scene_goto_preserves_message_middleware_data(bot: MockedBot) -> N
|
|||
await dp.feed_update(bot, update)
|
||||
|
||||
assert TargetScene.entered_with_context == "context from middleware"
|
||||
|
||||
|
||||
async def test_scene_after_goto_preserves_message_middleware_data(bot: MockedBot) -> None:
|
||||
dp = Dispatcher()
|
||||
registry = SceneRegistry(dp)
|
||||
registry.add(StartSceneWithAfter, TargetScene)
|
||||
dp.message.register(StartSceneWithAfter.as_handler(), CommandStart())
|
||||
dp.message.middleware(TestContextMiddleware())
|
||||
|
||||
TargetScene.entered_with_context = None
|
||||
|
||||
await dp.feed_update(
|
||||
bot,
|
||||
Update(
|
||||
update_id=1,
|
||||
message=Message(
|
||||
message_id=1,
|
||||
date=datetime.now(),
|
||||
chat=Chat(id=42, type=ChatType.PRIVATE),
|
||||
from_user=User(id=42, is_bot=False, first_name="Test"),
|
||||
text="/start",
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
await dp.feed_update(
|
||||
bot,
|
||||
Update(
|
||||
update_id=2,
|
||||
message=Message(
|
||||
message_id=2,
|
||||
date=datetime.now(),
|
||||
chat=Chat(id=42, type=ChatType.PRIVATE),
|
||||
from_user=User(id=42, is_bot=False, first_name="Test"),
|
||||
text="go",
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
assert TargetScene.entered_with_context == "context from middleware"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue