1+ # pylint: disable=contextmanager-generator-missing-cleanup
12# pylint: disable=redefined-outer-name
23# pylint: disable=unused-argument
34# pylint: disable=unused-import
1213import pytest
1314import servicelib
1415from faker import Faker
15- from pytest_mock import MockerFixture
1616from servicelib .redis import RedisClientSDK , RedisClientsManager , RedisManagerDBConfig
1717from settings_library .redis import RedisDatabase , RedisSettings
1818
@@ -69,20 +69,18 @@ def fake_data_dict(faker: Faker) -> dict[str, Any]:
6969 return data
7070
7171
72- @pytest .fixture
73- async def get_redis_client_sdk (
74- mock_redis_socket_timeout : None ,
75- mocker : MockerFixture ,
76- use_in_memory_redis : RedisSettings ,
77- ) -> AsyncIterable [
72+ @asynccontextmanager
73+ async def _get_redis_client_sdk (
74+ redis_settings : RedisSettings ,
75+ ) -> AsyncIterator [
7876 Callable [[RedisDatabase ], AbstractAsyncContextManager [RedisClientSDK ]]
7977]:
8078 @asynccontextmanager
8179 async def _ (
8280 database : RedisDatabase ,
8381 decode_response : bool = True , # noqa: FBT002
8482 ) -> AsyncIterator [RedisClientSDK ]:
85- redis_resources_dns = use_in_memory_redis .build_redis_dsn (database )
83+ redis_resources_dns = redis_settings .build_redis_dsn (database )
8684 client = RedisClientSDK (
8785 redis_resources_dns , decode_responses = decode_response , client_name = "pytest"
8886 )
@@ -101,9 +99,29 @@ async def _cleanup_redis_data(clients_manager: RedisClientsManager) -> None:
10199
102100 async with RedisClientsManager (
103101 {RedisManagerDBConfig (database = db ) for db in RedisDatabase },
104- use_in_memory_redis ,
102+ redis_settings ,
105103 client_name = "pytest" ,
106104 ) as clients_manager :
107105 await _cleanup_redis_data (clients_manager )
108106 yield _
109107 await _cleanup_redis_data (clients_manager )
108+
109+
110+ @pytest .fixture
111+ async def get_redis_client_sdk (
112+ mock_redis_socket_timeout : None , use_in_memory_redis : RedisSettings
113+ ) -> AsyncIterable [
114+ Callable [[RedisDatabase ], AbstractAsyncContextManager [RedisClientSDK ]]
115+ ]:
116+ async with _get_redis_client_sdk (use_in_memory_redis ) as client :
117+ yield client
118+
119+
120+ @pytest .fixture
121+ async def get_in_process_redis_client_sdk (
122+ mock_redis_socket_timeout : None , redis_service : RedisSettings
123+ ) -> AsyncIterable [
124+ Callable [[RedisDatabase ], AbstractAsyncContextManager [RedisClientSDK ]]
125+ ]:
126+ async with _get_redis_client_sdk (redis_service ) as client :
127+ yield client
0 commit comments