Skip to content

Commit b2e1e90

Browse files
noerogkurtisvg
authored andcommitted
fix some test things I missed
1 parent f9fc9f8 commit b2e1e90

File tree

2 files changed

+121
-14
lines changed

2 files changed

+121
-14
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ def test_CRUD_hl7v2_message(test_dataset, test_hl7v2_store, capsys):
146146
dataset_id,
147147
hl7v2_store_id)
148148

149-
assert len(hl7v2_messages_list) > 0
150149
hl7v2_message_name = hl7v2_messages_list[0].get('name')
151150
hl7v2_message_id = hl7v2_message_name.split('/', 9)[9]
152151

@@ -186,7 +185,6 @@ def test_ingest_hl7v2_message(test_dataset, test_hl7v2_store, capsys):
186185
dataset_id,
187186
hl7v2_store_id)
188187

189-
assert len(hl7v2_messages_list) > 0
190188
hl7v2_message_name = hl7v2_messages_list[0].get('name')
191189
hl7v2_message_id = hl7v2_message_name.split('/', 9)[9]
192190

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

Lines changed: 121 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
import sys
1818
import uuid
1919

20+
from googleapiclient.errors import HttpError
21+
from retrying import retry
22+
2023
# Add datasets for bootstrapping datasets for testing
2124
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'datasets')) # noqa
2225
import datasets
@@ -29,23 +32,129 @@
2932
hl7v2_store_id = 'test_hl7v2_store-{}'.format(uuid.uuid4())
3033

3134

32-
@pytest.fixture(scope='module')
33-
def test_dataset():
34-
dataset = datasets.create_dataset(
35-
project_id,
36-
cloud_region,
37-
dataset_id)
35+
def retry_if_server_exception(exception):
36+
return isinstance(exception, (HttpError))
37+
3838

39-
yield dataset
39+
@pytest.fixture(scope="module")
40+
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+
def create():
47+
try:
48+
datasets.create_dataset(project_id, cloud_region, dataset_id)
49+
except HttpError as err:
50+
# We ignore 409 conflict here, because we know it's most
51+
# likely the first request failed on the client side, but
52+
# the creation suceeded on the server side.
53+
if err.resp.status == 409:
54+
print(
55+
'Got exception {} while creating dataset'.format(
56+
err.resp.status))
57+
else:
58+
raise
59+
create()
60+
61+
yield
4062

4163
# Clean up
42-
datasets.delete_dataset(
43-
project_id,
44-
cloud_region,
45-
dataset_id)
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+
def clean_up():
70+
try:
71+
datasets.delete_dataset(project_id, cloud_region, dataset_id)
72+
except HttpError as err:
73+
# The API returns 403 when the dataset doesn't exist.
74+
if err.resp.status == 404 or err.resp.status == 403:
75+
print(
76+
'Got exception {} while deleting dataset'.format(
77+
err.resp.status))
78+
else:
79+
raise
80+
81+
clean_up()
82+
83+
84+
@pytest.fixture(scope="module")
85+
def test_hl7v2_store():
86+
@retry(
87+
wait_exponential_multiplier=1000,
88+
wait_exponential_max=10000,
89+
stop_max_attempt_number=10,
90+
retry_on_exception=retry_if_server_exception)
91+
def create():
92+
try:
93+
hl7v2_stores.create_hl7v2_store(
94+
project_id, cloud_region, dataset_id, hl7v2_store_id)
95+
except HttpError as err:
96+
# We ignore 409 conflict here, because we know it's most
97+
# likely the first request failed on the client side, but
98+
# the creation suceeded on the server side.
99+
if err.resp.status == 409:
100+
print(
101+
'Got exception {} while creating HL7v2 store'.format(
102+
err.resp.status))
103+
else:
104+
raise
105+
create()
106+
107+
yield
46108

109+
# Clean up
110+
@retry(
111+
wait_exponential_multiplier=1000,
112+
wait_exponential_max=10000,
113+
stop_max_attempt_number=10,
114+
retry_on_exception=retry_if_server_exception)
115+
def clean_up():
116+
try:
117+
hl7v2_stores.delete_hl7v2_store(
118+
project_id, cloud_region, dataset_id, hl7v2_store_id)
119+
except HttpError as err:
120+
# The API returns 403 when the HL7v2 store doesn't exist.
121+
if err.resp.status == 404 or err.resp.status == 403:
122+
print(
123+
'Got exception {} while deleting HL7v2 store'.format(
124+
err.resp.status))
125+
else:
126+
raise
127+
128+
clean_up()
129+
130+
131+
@pytest.fixture(scope="module")
132+
def crud_hl7v2_store_id():
133+
yield hl7v2_store_id
47134

48-
def test_CRUD_hl7v2_store(test_dataset, capsys):
135+
# Clean up
136+
@retry(
137+
wait_exponential_multiplier=1000,
138+
wait_exponential_max=10000,
139+
stop_max_attempt_number=10,
140+
retry_on_exception=retry_if_server_exception)
141+
def clean_up():
142+
try:
143+
hl7v2_stores.delete_hl7v2_store_id(
144+
project_id, cloud_region, dataset_id, hl7v2_store_id)
145+
except HttpError as err:
146+
# The API returns 403 when the HL7v2 store doesn't exist.
147+
if err.resp.status == 404 or err.resp.status == 403:
148+
print(
149+
'Got exception {} while deleting HL7v2 store'.format(
150+
err.resp.status))
151+
else:
152+
raise
153+
154+
clean_up()
155+
156+
157+
def test_CRUD_hl7v2_store(test_dataset, crud_hl7v2_store_id, capsys):
49158
hl7v2_stores.create_hl7v2_store(
50159
project_id,
51160
cloud_region,

0 commit comments

Comments
 (0)