66
77import asyncio
88import datetime
9- from collections .abc import AsyncIterator , Callable
9+ from collections .abc import Callable
1010from contextlib import AbstractAsyncContextManager
1111
1212import pytest
13- from faker import Faker
14- from pytest_mock import MockerFixture
1513from redis .exceptions import LockError , LockNotOwnedError
16- from servicelib .redis import RedisClientSDK , RedisClientsManager , RedisManagerDBConfig
17- from servicelib .redis import _constants as redis_constants
14+ from servicelib .redis import RedisClientSDK
1815from settings_library .redis import RedisDatabase , RedisSettings
1916from tenacity import (
2017 AsyncRetrying ,
3229]
3330
3431
35- @pytest .fixture
36- async def redis_client_sdk (
37- get_redis_client_sdk : Callable [
38- [RedisDatabase ], AbstractAsyncContextManager [RedisClientSDK ]
39- ],
40- ) -> AsyncIterator [RedisClientSDK ]:
41- async with get_redis_client_sdk (RedisDatabase .RESOURCES ) as client :
42- yield client
43-
44-
4532@pytest .fixture
4633def redis_lock_ttl () -> datetime .timedelta :
4734 return datetime .timedelta (seconds = 1 )
4835
4936
50- @pytest .fixture
51- def with_short_default_redis_lock_ttl (mocker : MockerFixture ) -> None :
52- mocker .patch .object (
53- redis_constants , "DEFAULT_LOCK_TTL" , datetime .timedelta (seconds = 0.25 )
54- )
55-
56-
57- @pytest .fixture
58- def lock_name (faker : Faker ) -> str :
59- return faker .pystr ()
60-
61-
6237async def test_redis_lock_no_ttl (redis_client_sdk : RedisClientSDK , lock_name : str ):
6338 lock = redis_client_sdk .create_lock (lock_name , ttl = None )
6439 assert await lock .locked () is False
@@ -175,7 +150,7 @@ async def test_redis_lock_with_ttl(
175150
176151# assert await redis_client_sdk.lock_value(lock_name) is None
177152
178- # with pytest.raises(RuntimeError): # noqa: PT012
153+ # with pytest.raises(RuntimeError):
179154# async with redis_client_sdk.lock_context(lock_name):
180155# assert await redis_client_sdk.redis.get(lock_name) is not None
181156# msg = "Expected error"
@@ -213,7 +188,7 @@ async def test_redis_lock_with_ttl(
213188# )
214189
215190# async def _inc_counter() -> None:
216- # async with get_redis_client_sdk( # noqa: SIM117
191+ # async with get_redis_client_sdk(
217192# RedisDatabase.RESOURCES
218193# ) as redis_client_sdk:
219194# async with redis_client_sdk.lock_context(
@@ -229,23 +204,6 @@ async def test_redis_lock_with_ttl(
229204# assert counter.value == INCREASE_BY * INCREASE_OPERATIONS
230205
231206
232- async def test_redis_client_sdks_manager (
233- mock_redis_socket_timeout : None , redis_service : RedisSettings
234- ):
235- all_redis_configs : set [RedisManagerDBConfig ] = {
236- RedisManagerDBConfig (database = db ) for db in RedisDatabase
237- }
238- manager = RedisClientsManager (
239- databases_configs = all_redis_configs ,
240- settings = redis_service ,
241- client_name = "pytest" ,
242- )
243-
244- async with manager :
245- for config in all_redis_configs :
246- assert manager .client (config .database )
247-
248-
249207async def test_redis_client_sdk_setup_shutdown (
250208 mock_redis_socket_timeout : None , redis_service : RedisSettings
251209):
@@ -276,15 +234,8 @@ async def test_redis_client_sdk_setup_shutdown(
276234 await client .shutdown ()
277235
278236
279- @pytest .fixture
280- def mock_default_socket_timeout (mocker : MockerFixture ) -> None :
281- mocker .patch .object (
282- redis_constants , "DEFAULT_SOCKET_TIMEOUT" , datetime .timedelta (seconds = 0.25 )
283- )
284-
285-
286237async def test_regression_fails_on_redis_service_outage (
287- mock_default_socket_timeout : None ,
238+ mock_redis_socket_timeout : None ,
288239 paused_container : Callable [[str ], AbstractAsyncContextManager [None ]],
289240 redis_client_sdk : RedisClientSDK ,
290241):
0 commit comments