-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Closed
Labels
bugBugBug
Description
It not possible to pass custom connection class via kwargs if redis uri starts with rediss://
(secure connection) or unix://
Version: 3.5.3
Platform: pyton3.9, fedora
Description:
Here are tests to reproduce. Discussion in aio-libs-abandoned/aioredis-py#1209 implies that it's intentional, but I am not sure if this is expected behavior.
import pytest
from redis import connection, from_url
@pytest.mark.parametrize("proto,ConnBase", [
("rediss", connection.SSLConnection),
("unix", connection.UnixDomainSocketConnection),
])
def test_custom_connection_class_connection_pool(proto, ConnBase):
class MyConn(ConnBase):
pass
pool = connection.ConnectionPool.from_url(
url=f"{proto}:///tmp/redis.sock", connection_class=MyConn,
)
conn = pool.make_connection()
assert isinstance(conn, MyConn)
@pytest.mark.parametrize("proto,ConnBase", [
("rediss", connection.SSLConnection),
("unix", connection.UnixDomainSocketConnection),
])
def test_from_url_custom_connection_class(proto, ConnBase):
class MyConn(ConnBase):
pass
redis = from_url(
url=f"{proto}://127.0.0.1", connection_class=MyConn,
)
conn = redis.connection_pool.make_connection()
assert isinstance(conn, MyConn)
Related issue in aioredis-py aio-libs-abandoned/aioredis-py#1209
Metadata
Metadata
Assignees
Labels
bugBugBug