Skip to content

Commit d6073a9

Browse files
committed
Add more retries for starting Redis test container
1 parent 6fe69fe commit d6073a9

File tree

4 files changed

+49
-9
lines changed

4 files changed

+49
-9
lines changed

sdks/python/apache_beam/io/requestresponse_it_test.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ def __exit__(self, exc_type, exc_val, exc_tb):
206206
@pytest.mark.uses_testcontainer
207207
class TestRedisCache(unittest.TestCase):
208208
def setUp(self) -> None:
209-
self.retries = 3
209+
self.retries = 10
210210
self._start_container()
211211

212212
def test_rrio_cache_all_miss(self):
@@ -288,7 +288,8 @@ def test_rrio_no_coder_exception(self):
288288
res.wait_until_finish()
289289

290290
def tearDown(self) -> None:
291-
self.container.stop()
291+
if hasattr(self, 'container') and self.container:
292+
self.container.stop()
292293

293294
def _start_container(self):
294295
for i in range(self.retries):
@@ -298,6 +299,15 @@ def _start_container(self):
298299
self.host = self.container.get_container_host_ip()
299300
self.port = self.container.get_exposed_port(6379)
300301
self.client = self.container.get_client()
302+
303+
# Ping Redis to ensure it's ready
304+
for _ in range(10):
305+
try:
306+
if self.client.ping():
307+
break
308+
except Exception:
309+
time.sleep(0.5)
310+
301311
break
302312
except Exception as e:
303313
if i == self.retries - 1:

sdks/python/apache_beam/transforms/enrichment_handlers/bigquery_it_test.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def setUpClass(cls):
140140

141141
def setUp(self) -> None:
142142
self.condition_template = "id = {}"
143-
self.retries = 3
143+
self.retries = 10
144144
self._start_container()
145145

146146
def _start_container(self):
@@ -151,6 +151,15 @@ def _start_container(self):
151151
self.host = self.container.get_container_host_ip()
152152
self.port = self.container.get_exposed_port(6379)
153153
self.client = self.container.get_client()
154+
155+
# Ping Redis to ensure it's ready
156+
for _ in range(10):
157+
try:
158+
if self.client.ping():
159+
break
160+
except Exception:
161+
time.sleep(0.5)
162+
154163
break
155164
except Exception as e:
156165
if i == self.retries - 1:
@@ -160,7 +169,8 @@ def _start_container(self):
160169
raise e
161170

162171
def tearDown(self) -> None:
163-
self.container.stop()
172+
if hasattr(self, 'container') and self.container:
173+
self.container.stop()
164174
self.client = None
165175

166176
def test_bigquery_enrichment(self):

sdks/python/apache_beam/transforms/enrichment_handlers/bigtable_it_test.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ def setUp(self):
167167
instance = client.instance(self.instance_id)
168168
self.table = instance.table(self.table_id)
169169
create_rows(self.table)
170-
self.retries = 3
170+
self.retries = 10
171171
self._start_container()
172172

173173
def _start_container(self):
@@ -178,14 +178,24 @@ def _start_container(self):
178178
self.host = self.container.get_container_host_ip()
179179
self.port = self.container.get_exposed_port(6379)
180180
self.client = self.container.get_client()
181+
182+
# Ping Redis to ensure it's ready
183+
for _ in range(10):
184+
try:
185+
if self.client.ping():
186+
break
187+
except Exception:
188+
time.sleep(0.5)
189+
181190
break
182191
except Exception as e:
183192
if i == self.retries - 1:
184193
_LOGGER.error('Unable to start redis container for RRIO tests.')
185194
raise e
186195

187196
def tearDown(self) -> None:
188-
self.container.stop()
197+
if hasattr(self, 'container') and self.container:
198+
self.container.stop()
189199
self.table = None
190200

191201
def test_enrichment_with_bigtable(self):

sdks/python/apache_beam/transforms/enrichment_handlers/vertex_ai_feature_store_it_test.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,25 +71,35 @@ def setUp(self) -> None:
7171
self.entity_type_name = "entity_id"
7272
self.api_endpoint = "us-central1-aiplatform.googleapis.com"
7373
self.feature_ids = ['title', 'genres']
74-
self.retries = 3
74+
self.retries = 10
7575
self._start_container()
7676

7777
def _start_container(self):
78-
for i in range(3):
78+
for i in range(self.retries):
7979
try:
8080
self.container = RedisContainer(image='redis:7.2.4')
8181
self.container.start()
8282
self.host = self.container.get_container_host_ip()
8383
self.port = self.container.get_exposed_port(6379)
8484
self.client = self.container.get_client()
85+
86+
# Ping Redis to ensure it's ready
87+
for _ in range(10):
88+
try:
89+
if self.client.ping():
90+
break
91+
except Exception:
92+
time.sleep(0.5)
93+
8594
break
8695
except Exception as e:
8796
if i == self.retries - 1:
8897
_LOGGER.error('Unable to start redis container for RRIO tests.')
8998
raise e
9099

91100
def tearDown(self) -> None:
92-
self.container.stop()
101+
if hasattr(self, 'container') and self.container:
102+
self.container.stop()
93103
self.client = None
94104

95105
def test_vertex_ai_feature_store_bigtable_serving_enrichment(self):

0 commit comments

Comments
 (0)