Переписал почти все тесты
feat: улучшено логирование и обработка скорингов в PostService и RagApiClient - Добавлены отладочные сообщения для передачи скорингов в функции обработки постов. - Обновлено логирование успешного получения скорингов из RAG API с дополнительной информацией. - Оптимизирована обработка скорингов в функции get_text_message для улучшения отладки. - Обновлены тесты для проверки новых функциональных возможностей и обработки ошибок.
This commit is contained in:
@@ -203,6 +203,51 @@ class TestAdminService:
|
||||
# Assert
|
||||
self.mock_db.delete_user_blacklist.assert_called_once_with(user_id)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_banned_users_success(self):
|
||||
"""Тест успешного получения списка забаненных пользователей."""
|
||||
self.mock_db.get_banned_users_from_db = AsyncMock(
|
||||
return_value=[(1, "спам", None), (2, "оскорбления", "2025-02-01")]
|
||||
)
|
||||
self.mock_db.get_username = AsyncMock(side_effect=["user1", "user2"])
|
||||
self.mock_db.get_full_name_by_id = AsyncMock(side_effect=["Name One", "Name Two"])
|
||||
|
||||
result = await self.admin_service.get_banned_users()
|
||||
|
||||
assert len(result) == 2
|
||||
assert result[0].user_id == 1
|
||||
assert result[0].reason == "спам"
|
||||
assert result[0].unban_date is None
|
||||
assert result[1].user_id == 2
|
||||
assert result[1].reason == "оскорбления"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_banned_users_uses_user_id_fallback(self):
|
||||
"""get_banned_users при отсутствии username/full_name использует User_{id}."""
|
||||
self.mock_db.get_banned_users_from_db = AsyncMock(return_value=[(99, "reason", None)])
|
||||
self.mock_db.get_username = AsyncMock(return_value=None)
|
||||
self.mock_db.get_full_name_by_id = AsyncMock(return_value=None)
|
||||
|
||||
result = await self.admin_service.get_banned_users()
|
||||
|
||||
assert len(result) == 1
|
||||
assert result[0].username == "User_99"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_banned_users_for_display_success(self):
|
||||
"""Тест успешного получения данных для отображения забаненных."""
|
||||
with patch("helper_bot.handlers.admin.services.get_banned_users_list", new_callable=AsyncMock) as mock_list:
|
||||
with patch("helper_bot.handlers.admin.services.get_banned_users_buttons", new_callable=AsyncMock) as mock_buttons:
|
||||
mock_list.return_value = "Список забаненных"
|
||||
mock_buttons.return_value = []
|
||||
|
||||
text, buttons = await self.admin_service.get_banned_users_for_display(0)
|
||||
|
||||
assert text == "Список забаненных"
|
||||
assert buttons == []
|
||||
mock_list.assert_awaited_once_with(0, self.mock_db)
|
||||
mock_buttons.assert_awaited_once_with(self.mock_db)
|
||||
|
||||
|
||||
class TestUser:
|
||||
"""Тесты для модели User"""
|
||||
|
||||
Reference in New Issue
Block a user