diff options
author | dvora-h <67596500+dvora-h@users.noreply.github.com> | 2023-05-08 14:15:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-08 14:15:39 +0300 |
commit | 984b733d52b44ec75e2c9ff53689a7b6fa86d719 (patch) | |
tree | 741df4dbba0bd299c13a30cf4892a89fa7434a11 | |
parent | 8c06d67f574bef941f7e19b1b2b36e767ed42b6d (diff) | |
download | redis-py-984b733d52b44ec75e2c9ff53689a7b6fa86d719.tar.gz |
fix create single_connection_client from url (#2752)
-rw-r--r-- | redis/asyncio/client.py | 6 | ||||
-rwxr-xr-x | redis/client.py | 6 | ||||
-rw-r--r-- | tests/test_asyncio/test_connection.py | 6 | ||||
-rw-r--r-- | tests/test_connection.py | 8 |
4 files changed, 24 insertions, 2 deletions
diff --git a/redis/asyncio/client.py b/redis/asyncio/client.py index a7b888e..7479b74 100644 --- a/redis/asyncio/client.py +++ b/redis/asyncio/client.py @@ -139,8 +139,12 @@ class Redis( arguments always win. """ + single_connection_client = kwargs.pop("single_connection_client", False) connection_pool = ConnectionPool.from_url(url, **kwargs) - return cls(connection_pool=connection_pool) + return cls( + connection_pool=connection_pool, + single_connection_client=single_connection_client, + ) def __init__( self, diff --git a/redis/client.py b/redis/client.py index 65d0cec..9fd5b7c 100755 --- a/redis/client.py +++ b/redis/client.py @@ -906,8 +906,12 @@ class Redis(AbstractRedis, RedisModuleCommands, CoreCommands, SentinelCommands): arguments always win. """ + single_connection_client = kwargs.pop("single_connection_client", False) connection_pool = ConnectionPool.from_url(url, **kwargs) - return cls(connection_pool=connection_pool) + return cls( + connection_pool=connection_pool, + single_connection_client=single_connection_client, + ) def __init__( self, diff --git a/tests/test_asyncio/test_connection.py b/tests/test_asyncio/test_connection.py index e49dd42..158b854 100644 --- a/tests/test_asyncio/test_connection.py +++ b/tests/test_asyncio/test_connection.py @@ -271,3 +271,9 @@ async def test_connection_disconect_race(parser_class): vals = await asyncio.gather(do_read(), do_close()) assert vals == [b"Hello, World!", None] + + +@pytest.mark.onlynoncluster +def test_create_single_connection_client_from_url(): + client = Redis.from_url("redis://localhost:6379/0?", single_connection_client=True) + assert client.single_connection_client is True diff --git a/tests/test_connection.py b/tests/test_connection.py index 75ba738..31268a9 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -205,3 +205,11 @@ def test_pack_command(Class): actual = Class().pack_command(*cmd)[0] assert actual == expected, f"actual = {actual}, expected = {expected}" + + +@pytest.mark.onlynoncluster +def test_create_single_connection_client_from_url(): + client = redis.Redis.from_url( + "redis://localhost:6379/0?", single_connection_client=True + ) + assert client.connection is not None |