mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-16 12:07:13 +00:00
* Added base support of Bot API 7.2 * Added base support of Bot API 7.2 * Fixing tests and content types for Telegram Bot API 7.2 update (#1453) * Fixing tests and content types for Telegram Bot API 7.2 * Adding changelog for 1453 PR * Fixes + coverage * Replace `BusinessConnection.date` type * Reformat code * Refactor UserContextMiddleware to use EventContext class This update significantly refactors UserContextMiddleware to leverage a new class, EventContext. Instead of resolving event context as a tuple, it now produces an instance of EventContext. Additional adjustments include supporting a business connection ID for event context identification and facilitating backwards compatibility. Tests and other files were also updated accordingly for these changes. * Cover FSM key builder (business_connection_id * Added changelog --------- Co-authored-by: RoLOQ <roman.fedunn@gmail.com>
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from aiogram.dispatcher.middlewares.user_context import (
|
|
EventContext,
|
|
UserContextMiddleware,
|
|
)
|
|
from aiogram.types import Chat, Update, User
|
|
|
|
|
|
async def next_handler(*args, **kwargs):
|
|
pass
|
|
|
|
|
|
class TestUserContextMiddleware:
|
|
async def test_unexpected_event_type(self):
|
|
with pytest.raises(RuntimeError):
|
|
await UserContextMiddleware()(next_handler, object(), {})
|
|
|
|
async def test_call(self):
|
|
middleware = UserContextMiddleware()
|
|
data = {}
|
|
|
|
chat = Chat(id=1, type="private", title="Test")
|
|
user = User(id=2, first_name="Test", is_bot=False)
|
|
thread_id = 3
|
|
|
|
with patch.object(
|
|
UserContextMiddleware,
|
|
"resolve_event_context",
|
|
return_value=EventContext(user=user, chat=chat, thread_id=3),
|
|
):
|
|
await middleware(next_handler, Update(update_id=42), data)
|
|
|
|
event_context = data["event_context"]
|
|
assert isinstance(event_context, EventContext)
|
|
assert event_context.chat is chat
|
|
assert event_context.user is user
|
|
assert event_context.thread_id == thread_id
|
|
assert data["event_chat"] is chat
|
|
assert data["event_from_user"] is user
|
|
assert data["event_thread_id"] == thread_id
|