This commit is contained in:
@@ -13,6 +13,7 @@ import signal
|
|||||||
import asyncio
|
import asyncio
|
||||||
from typing import Optional, Generator, AsyncGenerator
|
from typing import Optional, Generator, AsyncGenerator
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
from storage.redis import redis
|
from storage.redis import redis
|
||||||
from orm.base import BaseModel as Base
|
from orm.base import BaseModel as Base
|
||||||
@@ -588,6 +589,21 @@ def redis_client():
|
|||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def mock_redis_if_unavailable():
|
def mock_redis_if_unavailable():
|
||||||
"""Автоматически мокает Redis если он недоступен"""
|
"""Автоматически мокает 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:
|
try:
|
||||||
import redis
|
import redis
|
||||||
# Пробуем подключиться к Redis
|
# Пробуем подключиться к Redis
|
||||||
@@ -597,13 +613,13 @@ def mock_redis_if_unavailable():
|
|||||||
yield
|
yield
|
||||||
except Exception:
|
except Exception:
|
||||||
# Redis недоступен, мокаем
|
# Redis недоступен, мокаем
|
||||||
with patch('storage.redis.RedisService') as mock_redis:
|
with patch('storage.redis.redis') as mock_redis:
|
||||||
# Создаем базовый mock для Redis методов
|
# Создаем базовый mock для Redis методов
|
||||||
mock_redis.return_value.get.return_value = None
|
mock_redis.get.return_value = None
|
||||||
mock_redis.return_value.set.return_value = True
|
mock_redis.set.return_value = True
|
||||||
mock_redis.return_value.delete.return_value = True
|
mock_redis.delete.return_value = True
|
||||||
mock_redis.return_value.exists.return_value = False
|
mock_redis.exists.return_value = False
|
||||||
mock_redis.return_value.ping.return_value = True
|
mock_redis.ping.return_value = True
|
||||||
mock_redis.return_value.is_connected = False
|
mock_redis.is_connected = False
|
||||||
|
|
||||||
yield
|
yield
|
||||||
|
|||||||
Reference in New Issue
Block a user