Добавлены новые методы для получения статистики постов пользователей, информации о последних постах и количестве банов. Обновлены запросы в репозиториях для сортировки пользователей по дате бана. Исправлены вызовы функций форматирования сообщений для администраторов. Обновлены тесты для проверки новых функциональностей.
This commit is contained in:
@@ -29,6 +29,11 @@ class TestPrivateHandlers:
|
||||
db.add_message = AsyncMock()
|
||||
db.update_helper_message = AsyncMock()
|
||||
db.update_user_activity = AsyncMock()
|
||||
db.get_user_posts_stats = AsyncMock(return_value=(5, 2, 3))
|
||||
db.get_last_post_by_author = AsyncMock(return_value="Last post text")
|
||||
db.get_user_by_id = AsyncMock(return_value=Mock(date_added=1704067200))
|
||||
db.get_user_ban_count = AsyncMock(return_value=0)
|
||||
db.get_last_ban_info = AsyncMock(return_value=None)
|
||||
return db
|
||||
|
||||
@pytest.fixture
|
||||
@@ -257,6 +262,7 @@ class TestPrivateHandlers:
|
||||
"""resend_message_in_group при PRE_CHAT переводит в START и отправляет question."""
|
||||
handlers = create_private_handlers(mock_db, mock_settings)
|
||||
mock_state.get_state = AsyncMock(return_value=FSM_STATES["PRE_CHAT"])
|
||||
mock_message.bot.send_message = AsyncMock(return_value=Mock(message_id=100))
|
||||
with pytest.MonkeyPatch().context() as m:
|
||||
m.setattr(
|
||||
"helper_bot.handlers.private.private_handlers.get_reply_keyboard",
|
||||
@@ -267,9 +273,7 @@ class TestPrivateHandlers:
|
||||
lambda x, y: "Question?",
|
||||
)
|
||||
await handlers.resend_message_in_group_for_message(mock_message, mock_state)
|
||||
mock_message.forward.assert_called_once_with(
|
||||
chat_id=mock_settings.group_for_message
|
||||
)
|
||||
mock_message.bot.send_message.assert_called_once()
|
||||
mock_state.set_state.assert_called_once_with(FSM_STATES["START"])
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -279,6 +283,7 @@ class TestPrivateHandlers:
|
||||
"""resend_message_in_group при CHAT оставляет в CHAT и отправляет question с leave markup."""
|
||||
handlers = create_private_handlers(mock_db, mock_settings)
|
||||
mock_state.get_state = AsyncMock(return_value=FSM_STATES["CHAT"])
|
||||
mock_message.bot.send_message = AsyncMock(return_value=Mock(message_id=100))
|
||||
with pytest.MonkeyPatch().context() as m:
|
||||
m.setattr(
|
||||
"helper_bot.handlers.private.private_handlers.get_reply_keyboard_leave_chat",
|
||||
@@ -289,9 +294,7 @@ class TestPrivateHandlers:
|
||||
lambda x, y: "Question?",
|
||||
)
|
||||
await handlers.resend_message_in_group_for_message(mock_message, mock_state)
|
||||
mock_message.forward.assert_called_once_with(
|
||||
chat_id=mock_settings.group_for_message
|
||||
)
|
||||
mock_message.bot.send_message.assert_called_once()
|
||||
mock_message.answer.assert_called()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
Reference in New Issue
Block a user