Добавлены новые методы для получения статистики постов пользователей, информации о последних постах и количестве банов. Обновлены запросы в репозиториях для сортировки пользователей по дате бана. Исправлены вызовы функций форматирования сообщений для администраторов. Обновлены тесты для проверки новых функциональностей.

This commit is contained in:
2026-02-28 21:30:08 +03:00
parent e2a6944ed8
commit 694cf1c106
18 changed files with 1296 additions and 144 deletions

View File

@@ -665,7 +665,7 @@ class TestSendMessageFunctions:
assert result == mock_sent_message
mock_message.bot.send_photo.assert_called_once_with(
chat_id=123, caption="Подпись к фото", photo="photo.jpg"
chat_id=123, caption="Подпись к фото", photo="photo.jpg", parse_mode="HTML"
)
@pytest.mark.asyncio
@@ -684,7 +684,7 @@ class TestSendMessageFunctions:
assert result == mock_sent_message
mock_message.bot.send_video.assert_called_once_with(
chat_id=123, caption="Подпись к видео", video="video.mp4"
chat_id=123, caption="Подпись к видео", video="video.mp4", parse_mode="HTML"
)
@@ -722,8 +722,9 @@ class TestUtilityFunctions:
"""Тест получения списка заблокированных пользователей"""
mock_db = AsyncMock()
mock_db.get_banned_users_from_db_with_limits.return_value = [
(123, "Spam", 1704067200), # user_id, ban_reason, unban_date (timestamp)
(456, "Violation", 1704153600),
# user_id, ban_reason, unban_date (timestamp), ban_date (timestamp)
(123, "Spam", 1704067200, 1703980800),
(456, "Violation", 1704153600, 1704067200),
]
mock_db.get_username.return_value = None
mock_db.get_full_name_by_id.return_value = "Test User"
@@ -734,18 +735,16 @@ class TestUtilityFunctions:
assert "Test User" in result
assert "Spam" in result
assert "Violation" in result
assert "<b>Дата бана:</b>" in result
@pytest.mark.asyncio
async def test_get_banned_users_list_with_string_timestamp(self):
"""Тест получения списка заблокированных пользователей со строковым timestamp"""
mock_db = AsyncMock()
mock_db.get_banned_users_from_db_with_limits.return_value = [
(
123,
"Spam",
"1704067200",
), # user_id, ban_reason, unban_date (string timestamp)
(456, "Violation", "1704153600"),
# user_id, ban_reason, unban_date (string timestamp), ban_date (string timestamp)
(123, "Spam", "1704067200", "1703980800"),
(456, "Violation", "1704153600", "1704067200"),
]
mock_db.get_username.return_value = None
mock_db.get_full_name_by_id.return_value = "Test User"
@@ -756,6 +755,7 @@ class TestUtilityFunctions:
assert "Test User" in result
assert "Spam" in result
assert "Violation" in result
assert "<b>Дата бана:</b>" in result
@pytest.mark.asyncio
async def test_get_banned_users_buttons(self):