From c52dd4c9a270b08f4cee2e95b25f08ed103ab4b7 Mon Sep 17 00:00:00 2001 From: Roman Nigmatullin Date: Mon, 22 Dec 2025 18:32:24 +0300 Subject: [PATCH 1/2] update redis container --- modules/redis/testcontainers/redis/__init__.py | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/modules/redis/testcontainers/redis/__init__.py b/modules/redis/testcontainers/redis/__init__.py index 7a4d46613..9aae165be 100644 --- a/modules/redis/testcontainers/redis/__init__.py +++ b/modules/redis/testcontainers/redis/__init__.py @@ -17,7 +17,7 @@ from redis.asyncio import Redis as asyncRedis from testcontainers.core.container import DockerContainer from testcontainers.core.utils import raise_for_deprecated_parameter -from testcontainers.core.waiting_utils import wait_container_is_ready +from testcontainers.core.wait_strategies import ExecWaitStrategy class RedisContainer(DockerContainer): @@ -36,19 +36,14 @@ class RedisContainer(DockerContainer): def __init__(self, image: str = "redis:latest", port: int = 6379, password: Optional[str] = None, **kwargs) -> None: raise_for_deprecated_parameter(kwargs, "port_to_expose", "port") - super().__init__(image, **kwargs) + wait_strategy = ExecWaitStrategy(["redis-cli", "-a", password, "ping"] if password else ["redis-cli", "ping"]) + super().__init__(image, _wait_strategy=wait_strategy, **kwargs) self.port = port self.password = password self.with_exposed_ports(self.port) if self.password: self.with_command(f"redis-server --requirepass {self.password}") - @wait_container_is_ready(redis.exceptions.ConnectionError) - def _connect(self) -> None: - client = self.get_client() - if not client.ping(): - raise redis.exceptions.ConnectionError("Could not connect to Redis") - def get_client(self, **kwargs) -> redis.Redis: """ Get a redis client. @@ -66,12 +61,6 @@ def get_client(self, **kwargs) -> redis.Redis: **kwargs, ) - def start(self) -> "RedisContainer": - super().start() - self._connect() - return self - - class AsyncRedisContainer(RedisContainer): """ Redis container. From 0a9bb27bd54af3996c9466b2aead7782b8ea29bf Mon Sep 17 00:00:00 2001 From: Roman Nigmatullin Date: Mon, 22 Dec 2025 18:52:15 +0300 Subject: [PATCH 2/2] fix linting --- modules/redis/testcontainers/redis/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/redis/testcontainers/redis/__init__.py b/modules/redis/testcontainers/redis/__init__.py index 9aae165be..6dc3fdaef 100644 --- a/modules/redis/testcontainers/redis/__init__.py +++ b/modules/redis/testcontainers/redis/__init__.py @@ -61,6 +61,7 @@ def get_client(self, **kwargs) -> redis.Redis: **kwargs, ) + class AsyncRedisContainer(RedisContainer): """ Redis container.