From 7b3f0d652fdd08dfbe61656f148ddc0f4f2d4fde Mon Sep 17 00:00:00 2001 From: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com> Date: Wed, 26 Jun 2024 15:32:49 +0300 Subject: [PATCH] [5.0] Fixes CAE-333 (#3293) * Fixes CAE-333 (#3290) * Fixes CAE-333, which uncovered that the init method of the base class did override the initialization of the socket_timeout parameter. * Added missing blank lines * Removed blank line * Changed to quotes --------- Co-authored-by: vladvildanov * Updated version in setup.py --------- Co-authored-by: David Maier <60782329+dmaier-redislabs@users.noreply.github.com> --- redis/connection.py | 2 +- setup.py | 2 +- tests/test_connect.py | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/redis/connection.py b/redis/connection.py index 346ff3aa6b..8645656df3 100644 --- a/redis/connection.py +++ b/redis/connection.py @@ -818,9 +818,9 @@ class UnixDomainSocketConnection(AbstractConnection): "Manages UDS communication to and from a Redis server" def __init__(self, path="", socket_timeout=None, **kwargs): + super().__init__(**kwargs) self.path = path self.socket_timeout = socket_timeout - super().__init__(**kwargs) def repr_pieces(self): pieces = [("path", self.path), ("db", self.db)] diff --git a/setup.py b/setup.py index 4a157ea150..92f2ef9742 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ long_description_content_type="text/markdown", keywords=["Redis", "key-value store", "database"], license="MIT", - version="5.0.6", + version="5.0.7", packages=find_packages( include=[ "redis", diff --git a/tests/test_connect.py b/tests/test_connect.py index fcc1a05268..ec686540fa 100644 --- a/tests/test_connect.py +++ b/tests/test_connect.py @@ -96,6 +96,23 @@ def test_tcp_ssl_tls12_custom_ciphers(tcp_address, ssl_ciphers): _assert_connect(conn, tcp_address, certfile=certfile, keyfile=keyfile) +""" +Addresses bug CAE-333 which uncovered that the init method of the base +class did override the initialization of the socket_timeout parameter. +""" + + +def test_unix_socket_with_timeout(): + conn = UnixDomainSocketConnection(socket_timeout=1000) + + # Check if the base class defaults were taken over. + assert conn.db == 0 + + # Verify if the timeout and the path is set correctly. + assert conn.socket_timeout == 1000 + assert conn.path == "" + + @pytest.mark.ssl @pytest.mark.skipif(not ssl.HAS_TLSv1_3, reason="requires TLSv1.3") def test_tcp_ssl_version_mismatch(tcp_address):