Переписал почти все тесты

feat: улучшено логирование и обработка скорингов в PostService и RagApiClient

- Добавлены отладочные сообщения для передачи скорингов в функции обработки постов.
- Обновлено логирование успешного получения скорингов из RAG API с дополнительной информацией.
- Оптимизирована обработка скорингов в функции get_text_message для улучшения отладки.
- Обновлены тесты для проверки новых функциональных возможностей и обработки ошибок.
This commit is contained in:
2026-01-30 00:55:47 +03:00
parent e87f4af82f
commit a5faa4bdc6
27 changed files with 4320 additions and 8 deletions

View File

@@ -0,0 +1,61 @@
"""
Тесты для helper_bot.middlewares.dependencies_middleware.
"""
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from helper_bot.middlewares.dependencies_middleware import DependenciesMiddleware
@pytest.mark.unit
@pytest.mark.asyncio
class TestDependenciesMiddleware:
"""Тесты для DependenciesMiddleware."""
@pytest.fixture
def middleware(self):
"""Экземпляр middleware."""
return DependenciesMiddleware()
@pytest.fixture
def mock_handler(self):
"""Мок handler."""
return AsyncMock(return_value="ok")
@patch("helper_bot.middlewares.dependencies_middleware.get_global_instance")
async def test_injects_bot_db_and_settings_into_data(
self, mock_get_global, middleware, mock_handler
):
"""В data подставляются bot_db и settings из get_global_instance."""
mock_bdf = MagicMock()
mock_db = MagicMock()
mock_settings = {"Telegram": {}}
mock_bdf.get_db.return_value = mock_db
mock_bdf.settings = mock_settings
mock_get_global.return_value = mock_bdf
event = MagicMock()
data = {}
result = await middleware(mock_handler, event, data)
mock_get_global.assert_called_once()
assert data["bot_db"] is mock_db
assert data["settings"] is mock_settings
mock_handler.assert_called_once_with(event, data)
assert result == "ok"
@patch("helper_bot.middlewares.dependencies_middleware.get_global_instance")
async def test_exception_does_not_break_chain(self, mock_get_global, middleware, mock_handler):
"""При исключении в get_global_instance handler всё равно вызывается."""
mock_get_global.side_effect = RuntimeError("No global instance")
event = MagicMock()
data = {}
result = await middleware(mock_handler, event, data)
mock_handler.assert_called_once_with(event, data)
assert result == "ok"