2023-04-22 19:35:41 +03:00
|
|
|
from unittest.mock import patch
|
|
|
|
|
|
2021-09-22 00:52:38 +03:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
from aiogram.dispatcher.middlewares.user_context import UserContextMiddleware
|
2023-04-22 19:35:41 +03:00
|
|
|
from aiogram.types import Update
|
2021-09-22 00:52:38 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
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(), {})
|
2023-04-22 19:35:41 +03:00
|
|
|
|
|
|
|
|
async def test_call(self):
|
|
|
|
|
middleware = UserContextMiddleware()
|
|
|
|
|
data = {}
|
|
|
|
|
with patch.object(UserContextMiddleware, "resolve_event_context", return_value=[1, 2, 3]):
|
|
|
|
|
await middleware(next_handler, Update(update_id=42), data)
|
|
|
|
|
|
|
|
|
|
assert data["event_chat"] == 1
|
|
|
|
|
assert data["event_from_user"] == 2
|
|
|
|
|
assert data["event_thread_id"] == 3
|