Skip to content

Commit 46c1b49

Browse files
committed
upgrade-redis
1 parent 03b0a3e commit 46c1b49

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

backend/deepchecks_monitoring/utils/redis_proxy.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@ def __init__(self, settings: RedisSettings):
3333
self.settings = settings
3434
self.client = None
3535

36+
@classmethod
37+
async def _get_redis_client(cls, settings: RedisSettings):
38+
try:
39+
client = RedisCluster.from_url(settings.redis_uri)
40+
await client.ping()
41+
except redis_exceptions_tuple: # pylint: disable=catching-non-exception
42+
client = Redis.from_url(settings.redis_uri)
43+
3644
async def init_conn_async(self):
3745
"""Connect to Redis."""
3846
@retry(
@@ -42,11 +50,7 @@ async def init_conn_async(self):
4250
reraise=True
4351
)
4452
async def connect_to_redis():
45-
try:
46-
self.client = RedisCluster.from_url(self.settings.redis_uri)
47-
await self.client.ping()
48-
except redis_exceptions_tuple: # pylint: disable=catching-non-exception
49-
self.client = Redis.from_url(self.settings.redis_uri)
53+
self.client = await self._get_redis_client(self.settings)
5054
await connect_to_redis()
5155

5256
def __getattr__(self, name):
@@ -68,4 +72,4 @@ def wrapped(*args, **kwargs):
6872

6973
return wrapped
7074
else:
71-
return attr
75+
return attr

backend/tests/conftest.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,21 +217,24 @@ def mock_get_features_control(self, user): # pylint: disable=unused-argument
217217

218218
@pytest_asyncio.fixture(scope="function")
219219
async def resources_provider(settings, features_control_mock, async_redis):
220+
async def _get_redis_client(*_):
221+
async_redis.connection_pool.reset()
222+
return async_redis
220223
patch.object(ResourcesProvider, "get_features_control", features_control_mock).start()
221-
patch.object(RedisProxy, "_connect", lambda *_: (async_redis.connection_pool.reset() or async_redis)).start()
224+
patch.object(RedisProxy, "_get_redis_client", _get_redis_client).start()
222225
yield ResourcesProvider(settings)
223226

224227

225-
@pytest_asyncio.fixture(scope="function")
228+
@ pytest_asyncio.fixture(scope="function")
226229
async def application(
227230
resources_provider: ResourcesProvider,
228231
settings: Settings
229232
) -> FastAPI:
230233
"""Create application instance."""
231234
return create_application(
232-
resources_provider=resources_provider,
233-
settings=settings,
234-
log_level="ERROR"
235+
resources_provider = resources_provider,
236+
settings = settings,
237+
log_level = "ERROR"
235238
)
236239

237240

0 commit comments

Comments
 (0)