Skip to content

Commit 505547d

Browse files
author
Andrei Neagu
committed
refactor
1 parent 7a99147 commit 505547d

File tree

3 files changed

+39
-32
lines changed

3 files changed

+39
-32
lines changed

packages/service-library/tests/conftest.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# pylint: disable=contextmanager-generator-missing-cleanup
12
# pylint: disable=redefined-outer-name
23
# pylint: disable=unused-argument
34
# pylint: disable=unused-import
@@ -12,7 +13,6 @@
1213
import pytest
1314
import servicelib
1415
from faker import Faker
15-
from pytest_mock import MockerFixture
1616
from servicelib.redis import RedisClientSDK, RedisClientsManager, RedisManagerDBConfig
1717
from 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
Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,18 @@
1-
from collections.abc import AsyncIterator
1+
from collections.abc import AsyncIterator, Callable
2+
from contextlib import AbstractAsyncContextManager
23

34
import pytest
45
from servicelib.redis import RedisClientSDK
5-
from settings_library.redis import RedisDatabase, RedisSettings
6-
7-
8-
async def _cleanup_redis_data(client: RedisClientSDK) -> None:
9-
await client.redis.flushall()
6+
from settings_library.redis import RedisDatabase
107

118

129
@pytest.fixture
1310
async def redis_client_sdk_deferred_tasks(
14-
redis_service: RedisSettings,
11+
get_in_process_redis_client_sdk: Callable[
12+
[RedisDatabase, bool], AbstractAsyncContextManager[RedisClientSDK]
13+
],
1514
) -> AsyncIterator[RedisClientSDK]:
16-
17-
client = RedisClientSDK(
18-
redis_service.build_redis_dsn(RedisDatabase.DEFERRED_TASKS),
19-
decode_responses=False,
20-
client_name="pytest-deferred_tasks",
21-
)
22-
await client.setup()
23-
24-
await _cleanup_redis_data(client)
25-
26-
yield client
27-
28-
await _cleanup_redis_data(client)
29-
await client.shutdown()
15+
async with get_in_process_redis_client_sdk(
16+
RedisDatabase.DEFERRED_TASKS, decode_response=False
17+
) as client:
18+
yield client

packages/service-library/tests/redis/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212

1313
@pytest.fixture
1414
async def redis_client_sdk(
15-
get_redis_client_sdk: Callable[
15+
get_in_process_redis_client_sdk: Callable[
1616
[RedisDatabase], AbstractAsyncContextManager[RedisClientSDK]
1717
],
1818
) -> AsyncIterator[RedisClientSDK]:
19-
async with get_redis_client_sdk(RedisDatabase.RESOURCES) as client:
19+
async with get_in_process_redis_client_sdk(RedisDatabase.RESOURCES) as client:
2020
yield client
2121

2222

0 commit comments

Comments
 (0)