Files
telegram-helper-bot/tests/test_dependencies_middleware.py
Andrey a5faa4bdc6 Переписал почти все тесты
feat: улучшено логирование и обработка скорингов в PostService и RagApiClient

- Добавлены отладочные сообщения для передачи скорингов в функции обработки постов.
- Обновлено логирование успешного получения скорингов из RAG API с дополнительной информацией.
- Оптимизирована обработка скорингов в функции get_text_message для улучшения отладки.
- Обновлены тесты для проверки новых функциональных возможностей и обработки ошибок.
2026-01-30 00:55:47 +03:00

62 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Тесты для 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"