Skip to content

Commit

Permalink
Merge pull request #422 from MoxForever/develop
Browse files Browse the repository at this point in the history
Fix media in MockMessageManager
  • Loading branch information
Tishka17 authored Aug 23, 2024
2 parents ce855aa + ba6d572 commit b497d5d
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/aiogram_dialog/test_tools/mock_message_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,33 @@


def file_id(media: MediaAttachment) -> str:
return media.file_id or str(uuid4())
file_id_ = None
if media.file_id:
file_id_ = media.file_id.file_id
return file_id_ or str(uuid4())


def file_unique_id(media: MediaAttachment) -> str:
file_unique_id_ = None
if media.file_id:
file_unique_id_ = media.file_id.file_unique_id
return file_unique_id_ or str(uuid4())


MEDIA_CLASSES = {
"audio": lambda x: Audio(
file_id=file_id(x), file_unique_id=file_id(x),
file_id=file_id(x), file_unique_id=file_unique_id(x),
duration=1024,
),
"document": lambda x: Document(
file_id=file_id(x), file_unique_id=file_id(x),
file_id=file_id(x), file_unique_id=file_unique_id(x),
),
"photo": lambda x: [PhotoSize(
file_id=file_id(x), file_unique_id=file_id(x),
file_id=file_id(x), file_unique_id=file_unique_id(x),
width=1024, height=1024,
)],
"video": lambda x: Video(
file_id=file_id(x), file_unique_id=file_id(x),
file_id=file_id(x), file_unique_id=file_unique_id(x),
width=1024, height=1024, duration=1024,
),
}
Expand Down Expand Up @@ -121,17 +131,18 @@ async def show_message(self, bot: Bot, new_message: NewMessage,
**contents,
)
self.sent_messages.append(message)

return OldMessage(
message_id=message_id,
chat=new_message.chat,
text=new_message.text,
media_id=(
new_message.media.file_id.file_id
file_id(new_message.media)
if new_message.media
else None
),
media_uniq_id=(
new_message.media.file_id.file_unique_id
file_unique_id(new_message.media)
if new_message.media
else None
),
Expand Down
67 changes: 67 additions & 0 deletions tests/widgets/media/test_media_message.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import pytest
from aiogram import Dispatcher
from aiogram.filters import Command
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.types import Message

from aiogram_dialog import (
Dialog,
DialogManager,
setup_dialogs,
StartMode,
Window,
)
from aiogram_dialog.test_tools import BotClient, MockMessageManager
from aiogram_dialog.widgets.media.static import StaticMedia


class MainSG(StatesGroup):
with_url = State()
with_path = State()


dialog = Dialog(
Window(
StaticMedia(url="fake_image.png"),
state=MainSG.with_url,
),
Window(
StaticMedia(path="fake_image.png"),
state=MainSG.with_path,
),
)


async def start_url(message: Message, dialog_manager: DialogManager):
await dialog_manager.start(MainSG.with_url, mode=StartMode.RESET_STACK)


async def start_path(message: Message, dialog_manager: DialogManager):
await dialog_manager.start(MainSG.with_path, mode=StartMode.RESET_STACK)


@pytest.mark.asyncio
async def test_click():
dp = Dispatcher(
storage=MemoryStorage(),
)
dp.include_router(dialog)
dp.message.register(start_url, Command("url"))
dp.message.register(start_path, Command("path"))

client = BotClient(dp)
message_manager = MockMessageManager()
setup_dialogs(dp, message_manager=message_manager)

# with url parameter
await client.send("/url")
first_message = message_manager.one_message()
assert first_message.photo

message_manager.reset_history()

# with path parameter
await client.send("/path")
first_message = message_manager.one_message()
assert first_message.photo

0 comments on commit b497d5d

Please sign in to comment.