17
17
import sys
18
18
import uuid
19
19
20
+ import backoff
20
21
from googleapiclient .errors import HttpError
21
- from retrying import retry
22
22
23
23
# Add datasets for bootstrapping datasets for testing
24
24
sys .path .append (os .path .join (os .path .dirname (__file__ ), ".." , "datasets" )) # noqa
36
36
label_value = "TRUE"
37
37
38
38
39
- def retry_if_server_exception (exception ):
40
- return isinstance (exception , (HttpError ))
41
-
42
-
43
39
@pytest .fixture (scope = "module" )
44
40
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 )
51
42
def create ():
52
43
try :
53
44
datasets .create_dataset (project_id , cloud_region , dataset_id )
@@ -65,12 +56,7 @@ def create():
65
56
yield
66
57
67
58
# 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 )
74
60
def clean_up ():
75
61
try :
76
62
datasets .delete_dataset (project_id , cloud_region , dataset_id )
@@ -86,12 +72,7 @@ def clean_up():
86
72
87
73
@pytest .fixture (scope = "module" )
88
74
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 )
95
76
def create ():
96
77
try :
97
78
hl7v2_stores .create_hl7v2_store (
@@ -115,12 +96,7 @@ def create():
115
96
yield
116
97
117
98
# 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 )
124
100
def clean_up ():
125
101
try :
126
102
hl7v2_stores .delete_hl7v2_store (
@@ -145,12 +121,20 @@ def test_CRUD_hl7v2_message(test_dataset, test_hl7v2_store, capsys):
145
121
project_id , cloud_region , dataset_id , hl7v2_store_id , hl7v2_message_file
146
122
)
147
123
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
151
136
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 ()
154
138
155
139
hl7v2_messages .get_hl7v2_message (
156
140
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):
173
157
project_id , cloud_region , dataset_id , hl7v2_store_id , hl7v2_message_file
174
158
)
175
159
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
+ )
179
165
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 ()
182
174
183
175
hl7v2_messages .get_hl7v2_message (
184
176
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):
201
193
project_id , cloud_region , dataset_id , hl7v2_store_id , hl7v2_message_file
202
194
)
203
195
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
207
208
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 ()
211
210
212
211
hl7v2_messages .patch_hl7v2_message (
213
212
project_id ,
0 commit comments