Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9c492b5

Browse filesBrowse files
author
Takashi Matsuo
authored
[healthcare] fix: retry eventually consistent tests (GoogleCloudPlatform#3434)
fixes GoogleCloudPlatform#3432
1 parent e2cf90d commit 9c492b5
Copy full SHA for 9c492b5

File tree

Expand file treeCollapse file tree

3 files changed

+51
-77
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+51
-77
lines changed

‎healthcare/api-client/v1/hl7v2/hl7v2_messages_test.py

Copy file name to clipboardExpand all lines: healthcare/api-client/v1/hl7v2/hl7v2_messages_test.py
+44-45Lines changed: 44 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import sys
1818
import uuid
1919

20+
import backoff
2021
from googleapiclient.errors import HttpError
21-
from retrying import retry
2222

2323
# Add datasets for bootstrapping datasets for testing
2424
sys.path.append(os.path.join(os.path.dirname(__file__), "..", "datasets")) # noqa
@@ -36,18 +36,9 @@
3636
label_value = "TRUE"
3737

3838

39-
def retry_if_server_exception(exception):
40-
return isinstance(exception, (HttpError))
41-
42-
4339
@pytest.fixture(scope="module")
4440
def test_dataset():
45-
@retry(
46-
wait_exponential_multiplier=1000,
47-
wait_exponential_max=10000,
48-
stop_max_attempt_number=10,
49-
retry_on_exception=retry_if_server_exception,
50-
)
41+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
5142
def create():
5243
try:
5344
datasets.create_dataset(project_id, cloud_region, dataset_id)
@@ -65,12 +56,7 @@ def create():
6556
yield
6657

6758
# Clean up
68-
@retry(
69-
wait_exponential_multiplier=1000,
70-
wait_exponential_max=10000,
71-
stop_max_attempt_number=10,
72-
retry_on_exception=retry_if_server_exception,
73-
)
59+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
7460
def clean_up():
7561
try:
7662
datasets.delete_dataset(project_id, cloud_region, dataset_id)
@@ -86,12 +72,7 @@ def clean_up():
8672

8773
@pytest.fixture(scope="module")
8874
def test_hl7v2_store():
89-
@retry(
90-
wait_exponential_multiplier=1000,
91-
wait_exponential_max=10000,
92-
stop_max_attempt_number=10,
93-
retry_on_exception=retry_if_server_exception,
94-
)
75+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
9576
def create():
9677
try:
9778
hl7v2_stores.create_hl7v2_store(
@@ -115,12 +96,7 @@ def create():
11596
yield
11697

11798
# Clean up
118-
@retry(
119-
wait_exponential_multiplier=1000,
120-
wait_exponential_max=10000,
121-
stop_max_attempt_number=10,
122-
retry_on_exception=retry_if_server_exception,
123-
)
99+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
124100
def clean_up():
125101
try:
126102
hl7v2_stores.delete_hl7v2_store(
@@ -145,12 +121,20 @@ def test_CRUD_hl7v2_message(test_dataset, test_hl7v2_store, capsys):
145121
project_id, cloud_region, dataset_id, hl7v2_store_id, hl7v2_message_file
146122
)
147123

148-
hl7v2_messages_list = hl7v2_messages.list_hl7v2_messages(
149-
project_id, cloud_region, dataset_id, hl7v2_store_id
150-
)
124+
@backoff.on_exception(backoff.expo, AssertionError, max_time=60)
125+
def run_eventually_consistent_test():
126+
hl7v2_messages_list = hl7v2_messages.list_hl7v2_messages(
127+
project_id, cloud_region, dataset_id, hl7v2_store_id
128+
)
129+
130+
assert len(hl7v2_messages_list) > 0
131+
hl7v2_message_name = hl7v2_messages_list[0].get("name")
132+
elms = hl7v2_message_name.split("/", 9)
133+
assert len(elms) >= 10
134+
hl7v2_message_id = elms[9]
135+
return hl7v2_message_id
151136

152-
hl7v2_message_name = hl7v2_messages_list[0].get("name")
153-
hl7v2_message_id = hl7v2_message_name.split("/", 9)[9]
137+
hl7v2_message_id = run_eventually_consistent_test()
154138

155139
hl7v2_messages.get_hl7v2_message(
156140
project_id, cloud_region, dataset_id, hl7v2_store_id, hl7v2_message_id
@@ -173,12 +157,20 @@ def test_ingest_hl7v2_message(test_dataset, test_hl7v2_store, capsys):
173157
project_id, cloud_region, dataset_id, hl7v2_store_id, hl7v2_message_file
174158
)
175159

176-
hl7v2_messages_list = hl7v2_messages.list_hl7v2_messages(
177-
project_id, cloud_region, dataset_id, hl7v2_store_id
178-
)
160+
@backoff.on_exception(backoff.expo, AssertionError, max_time=60)
161+
def run_eventually_consistent_test():
162+
hl7v2_messages_list = hl7v2_messages.list_hl7v2_messages(
163+
project_id, cloud_region, dataset_id, hl7v2_store_id
164+
)
179165

180-
hl7v2_message_name = hl7v2_messages_list[0].get("name")
181-
hl7v2_message_id = hl7v2_message_name.split("/", 9)[9]
166+
assert len(hl7v2_messages_list) > 0
167+
hl7v2_message_name = hl7v2_messages_list[0].get("name")
168+
elms = hl7v2_message_name.split("/", 9)
169+
assert len(elms) >= 10
170+
hl7v2_message_id = elms[9]
171+
return hl7v2_message_id
172+
173+
hl7v2_message_id = run_eventually_consistent_test()
182174

183175
hl7v2_messages.get_hl7v2_message(
184176
project_id, cloud_region, dataset_id, hl7v2_store_id, hl7v2_message_id
@@ -201,13 +193,20 @@ def test_patch_hl7v2_message(test_dataset, test_hl7v2_store, capsys):
201193
project_id, cloud_region, dataset_id, hl7v2_store_id, hl7v2_message_file
202194
)
203195

204-
hl7v2_messages_list = hl7v2_messages.list_hl7v2_messages(
205-
project_id, cloud_region, dataset_id, hl7v2_store_id
206-
)
196+
@backoff.on_exception(backoff.expo, AssertionError, max_time=60)
197+
def run_eventually_consistent_test():
198+
hl7v2_messages_list = hl7v2_messages.list_hl7v2_messages(
199+
project_id, cloud_region, dataset_id, hl7v2_store_id
200+
)
201+
202+
assert len(hl7v2_messages_list) > 0
203+
hl7v2_message_name = hl7v2_messages_list[0].get("name")
204+
elms = hl7v2_message_name.split("/", 9)
205+
assert len(elms) >= 10
206+
hl7v2_message_id = elms[9]
207+
return hl7v2_message_id
207208

208-
assert len(hl7v2_messages_list) > 0
209-
hl7v2_message_name = hl7v2_messages_list[0].get("name")
210-
hl7v2_message_id = hl7v2_message_name.split("/", 9)[9]
209+
hl7v2_message_id = run_eventually_consistent_test()
211210

212211
hl7v2_messages.patch_hl7v2_message(
213212
project_id,

‎healthcare/api-client/v1/hl7v2/hl7v2_stores_test.py

Copy file name to clipboardExpand all lines: healthcare/api-client/v1/hl7v2/hl7v2_stores_test.py
+6-31Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import sys
1818
import uuid
1919

20+
import backoff
2021
from googleapiclient.errors import HttpError
21-
from retrying import retry
2222

2323
# Add datasets for bootstrapping datasets for testing
2424
sys.path.append(os.path.join(os.path.dirname(__file__), "..", "datasets")) # noqa
@@ -38,12 +38,7 @@ def retry_if_server_exception(exception):
3838

3939
@pytest.fixture(scope="module")
4040
def test_dataset():
41-
@retry(
42-
wait_exponential_multiplier=1000,
43-
wait_exponential_max=10000,
44-
stop_max_attempt_number=10,
45-
retry_on_exception=retry_if_server_exception,
46-
)
41+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
4742
def create():
4843
try:
4944
datasets.create_dataset(project_id, cloud_region, dataset_id)
@@ -61,12 +56,7 @@ def create():
6156
yield
6257

6358
# Clean up
64-
@retry(
65-
wait_exponential_multiplier=1000,
66-
wait_exponential_max=10000,
67-
stop_max_attempt_number=10,
68-
retry_on_exception=retry_if_server_exception,
69-
)
59+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
7060
def clean_up():
7161
try:
7262
datasets.delete_dataset(project_id, cloud_region, dataset_id)
@@ -82,12 +72,7 @@ def clean_up():
8272

8373
@pytest.fixture(scope="module")
8474
def test_hl7v2_store():
85-
@retry(
86-
wait_exponential_multiplier=1000,
87-
wait_exponential_max=10000,
88-
stop_max_attempt_number=10,
89-
retry_on_exception=retry_if_server_exception,
90-
)
75+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
9176
def create():
9277
try:
9378
hl7v2_stores.create_hl7v2_store(
@@ -111,12 +96,7 @@ def create():
11196
yield
11297

11398
# Clean up
114-
@retry(
115-
wait_exponential_multiplier=1000,
116-
wait_exponential_max=10000,
117-
stop_max_attempt_number=10,
118-
retry_on_exception=retry_if_server_exception,
119-
)
99+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
120100
def clean_up():
121101
try:
122102
hl7v2_stores.delete_hl7v2_store(
@@ -141,12 +121,7 @@ def crud_hl7v2_store_id():
141121
yield hl7v2_store_id
142122

143123
# Clean up
144-
@retry(
145-
wait_exponential_multiplier=1000,
146-
wait_exponential_max=10000,
147-
stop_max_attempt_number=10,
148-
retry_on_exception=retry_if_server_exception,
149-
)
124+
@backoff.on_exception(backoff.expo, HttpError, max_time=60)
150125
def clean_up():
151126
try:
152127
hl7v2_stores.delete_hl7v2_store(
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
pytest==5.3.2
2-
retrying==1.3.3
2+
backoff==1.10.0

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.