""" Конфигурация pytest для AnonBot """ import pytest import asyncio from unittest.mock import AsyncMock, MagicMock from typing import Generator # Импорты для фикстур from config import config from services.infrastructure.database import DatabaseService from services.auth.auth_new import AuthService from services.validation import InputValidator from services.utils import UtilsService from services.rate_limiting.rate_limit_service import RateLimitService @pytest.fixture(scope="session") def event_loop(): """Создание event loop для async тестов""" loop = asyncio.get_event_loop_policy().new_event_loop() yield loop loop.close() @pytest.fixture def mock_database(): """Мок для DatabaseService""" return AsyncMock(spec=DatabaseService) @pytest.fixture def mock_auth(): """Мок для AuthService""" return AsyncMock(spec=AuthService) @pytest.fixture def mock_validator(): """Мок для InputValidator""" return MagicMock(spec=InputValidator) @pytest.fixture def mock_utils(): """Мок для UtilsService""" return MagicMock(spec=UtilsService) @pytest.fixture def mock_rate_limit_service(): """Мок для RateLimitService""" return AsyncMock(spec=RateLimitService) @pytest.fixture def mock_config(): """Мок для конфигурации""" mock_config = MagicMock() mock_config.ADMINS = [123456789, 987654321] mock_config.MAX_QUESTION_LENGTH = 1000 mock_config.MAX_ANSWER_LENGTH = 2000 mock_config.MIN_QUESTION_LENGTH = 10 mock_config.MIN_ANSWER_LENGTH = 5 return mock_config