This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user