diff --git a/tests/conftest.py b/tests/conftest.py index a7e2b49e..e1b31cbd 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,6 +13,7 @@ import signal import asyncio from typing import Optional, Generator, AsyncGenerator from contextlib import asynccontextmanager +from unittest.mock import patch from storage.redis import redis from orm.base import BaseModel as Base @@ -588,6 +589,21 @@ def redis_client(): @pytest.fixture(autouse=True) def mock_redis_if_unavailable(): """Автоматически мокает Redis если он недоступен""" + # В CI окружении всегда мокаем Redis + if os.getenv('CI') or os.getenv('GITHUB_ACTIONS'): + with patch('storage.redis.redis') as mock_redis: + # Создаем базовый mock для Redis методов + mock_redis.get.return_value = None + mock_redis.set.return_value = True + mock_redis.delete.return_value = True + mock_redis.exists.return_value = False + mock_redis.ping.return_value = True + mock_redis.is_connected = False + + yield + return + + # В локальной среде пробуем подключиться к Redis try: import redis # Пробуем подключиться к Redis @@ -597,13 +613,13 @@ def mock_redis_if_unavailable(): yield except Exception: # Redis недоступен, мокаем - with patch('storage.redis.RedisService') as mock_redis: + with patch('storage.redis.redis') as mock_redis: # Создаем базовый mock для Redis методов - mock_redis.return_value.get.return_value = None - mock_redis.return_value.set.return_value = True - mock_redis.return_value.delete.return_value = True - mock_redis.return_value.exists.return_value = False - mock_redis.return_value.ping.return_value = True - mock_redis.return_value.is_connected = False + mock_redis.get.return_value = None + mock_redis.set.return_value = True + mock_redis.delete.return_value = True + mock_redis.exists.return_value = False + mock_redis.ping.return_value = True + mock_redis.is_connected = False yield