Skip to content

Commit d968ae4

Browse files
authored
Merge pull request #2095 from tseaver/2092-2093-monitoring-flaky-system-tests
Reduce flakiness of Monitoring system tests.
2 parents a9891ab + 2f70ab1 commit d968ae4

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

system_tests/monitoring.py

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,15 @@
1717
from gcloud import _helpers
1818
from gcloud.environment_vars import TESTS_PROJECT
1919
from gcloud.exceptions import NotFound
20+
from gcloud.exceptions import ServiceUnavailable
2021
from gcloud import monitoring
2122

23+
from retry import RetryErrors
2224
from system_test_utils import unique_resource_id
2325

26+
retry_404 = RetryErrors(NotFound)
27+
retry_503 = RetryErrors(ServiceUnavailable)
28+
2429

2530
def setUpModule():
2631
_helpers.PROJECT = TESTS_PROJECT
@@ -172,7 +177,8 @@ def test_create_and_delete_metric_descriptor(self):
172177
)
173178

174179
descriptor.create()
175-
descriptor.delete()
180+
retry_404(descriptor.delete)()
181+
176182
with self.assertRaises(NotFound):
177183
descriptor.delete()
178184

@@ -187,7 +193,7 @@ def setUp(self):
187193

188194
def tearDown(self):
189195
for group in self.to_delete:
190-
group.delete()
196+
retry_404(group.delete)()
191197

192198
def test_create_group(self):
193199
client = monitoring.Client()
@@ -196,8 +202,10 @@ def test_create_group(self):
196202
filter_string=self.FILTER,
197203
is_cluster=self.IS_CLUSTER,
198204
)
199-
group.create()
205+
206+
retry_503(group.create)()
200207
self.to_delete.append(group)
208+
201209
self.assertTrue(group.exists())
202210

203211
def test_list_groups(self):
@@ -209,8 +217,10 @@ def test_list_groups(self):
209217
)
210218
before_groups = client.list_groups()
211219
before_names = set(group.name for group in before_groups)
212-
new_group.create()
220+
221+
retry_503(new_group.create)()
213222
self.to_delete.append(new_group)
223+
214224
self.assertTrue(new_group.exists())
215225
after_groups = client.list_groups()
216226
after_names = set(group.name for group in after_groups)
@@ -224,8 +234,10 @@ def test_reload_group(self):
224234
filter_string=self.FILTER,
225235
is_cluster=self.IS_CLUSTER,
226236
)
227-
group.create()
237+
238+
retry_503(group.create)()
228239
self.to_delete.append(group)
240+
229241
group.filter = 'resource.type = "aws_ec2_instance"'
230242
group.display_name = 'locally changed name'
231243
group.reload()
@@ -242,7 +254,8 @@ def test_update_group(self):
242254
filter_string=self.FILTER,
243255
is_cluster=self.IS_CLUSTER,
244256
)
245-
group.create()
257+
258+
retry_503(group.create)()
246259
self.to_delete.append(group)
247260

248261
group.filter = NEW_FILTER
@@ -260,7 +273,8 @@ def test_list_group_members(self):
260273
filter_string=self.FILTER,
261274
is_cluster=self.IS_CLUSTER,
262275
)
263-
group.create()
276+
277+
retry_503(group.create)()
264278
self.to_delete.append(group)
265279

266280
for member in group.list_members():
@@ -272,22 +286,27 @@ def test_group_hierarchy(self):
272286
display_name='Testing: Root group',
273287
filter_string=self.FILTER,
274288
)
275-
root_group.create()
289+
290+
retry_503(root_group.create)()
291+
self.to_delete.insert(0, root_group)
276292

277293
middle_group = client.group(
278294
display_name='Testing: Middle group',
279295
filter_string=self.FILTER,
280296
parent_id=root_group.id,
281297
)
282-
middle_group.create()
298+
299+
retry_503(middle_group.create)()
300+
self.to_delete.insert(0, middle_group)
283301

284302
leaf_group = client.group(
285303
display_name='Testing: Leaf group',
286304
filter_string=self.FILTER,
287305
parent_id=middle_group.id,
288306
)
289-
leaf_group.create()
290-
self.to_delete.extend([leaf_group, middle_group, root_group])
307+
308+
retry_503(leaf_group.create)()
309+
self.to_delete.insert(0, leaf_group)
291310

292311
# Test for parent.
293312
actual_parent = middle_group.fetch_parent()

0 commit comments

Comments
 (0)