42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import unittest
|
|
from types import SimpleNamespace
|
|
from unittest.mock import AsyncMock, patch
|
|
|
|
from bot.middlewares.action_logger_middleware import ActionLoggerMiddleware
|
|
|
|
|
|
class ActionLoggerMiddlewareTests(unittest.IsolatedAsyncioTestCase):
|
|
async def test_skip_action_log_flag_suppresses_database_logging(self):
|
|
middleware = ActionLoggerMiddleware(
|
|
SimpleNamespace(ADMIN_IDS=[], LOG_ADMIN_ACTIONS=True)
|
|
)
|
|
event = SimpleNamespace(event_type="message")
|
|
data = {
|
|
"session": object(),
|
|
"event_from_user": SimpleNamespace(id=42, username="user", first_name="User"),
|
|
}
|
|
|
|
async def handler(_event, handler_data):
|
|
handler_data["skip_action_log"] = True
|
|
return "ok"
|
|
|
|
with (
|
|
patch(
|
|
"bot.middlewares.action_logger_middleware.user_dal.get_user_by_id",
|
|
AsyncMock(),
|
|
) as get_user,
|
|
patch(
|
|
"bot.middlewares.action_logger_middleware.message_log_dal.create_message_log_no_commit",
|
|
AsyncMock(),
|
|
) as create_log,
|
|
):
|
|
result = await middleware(handler, event, data)
|
|
|
|
self.assertEqual(result, "ok")
|
|
get_user.assert_not_awaited()
|
|
create_log.assert_not_awaited()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|