From f0c76ad502acca9f361ff17df5303b99da99a73f Mon Sep 17 00:00:00 2001 From: Thea Flowers Date: Fri, 14 Jun 2019 13:40:22 -0700 Subject: [PATCH] Deflake bigtable and spanner tests. * Spanner doesn't actually promise the order of the results, so make the assertion work regardless of ordering. * Bigtable might need some more time to scale, so retry the assertion up to 10 times. --- bigtable/metricscaler/metricscaler_test.py | 28 +++++++++++++++------- spanner/cloud-client/snippets_test.py | 4 +++- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/bigtable/metricscaler/metricscaler_test.py b/bigtable/metricscaler/metricscaler_test.py index f4a18b8418b..51077cee5cb 100644 --- a/bigtable/metricscaler/metricscaler_test.py +++ b/bigtable/metricscaler/metricscaler_test.py @@ -46,17 +46,27 @@ def test_scale_bigtable(): scale_bigtable(BIGTABLE_INSTANCE, BIGTABLE_INSTANCE, True) - time.sleep(10) - cluster.reload() - - new_node_count = cluster.serve_nodes - assert (new_node_count == (original_node_count + SIZE_CHANGE_STEP)) + for n in range(10): + time.sleep(10) + cluster.reload() + new_node_count = cluster.serve_nodes + try: + assert (new_node_count == (original_node_count + SIZE_CHANGE_STEP)) + except AssertionError: + if n == 9: + raise scale_bigtable(BIGTABLE_INSTANCE, BIGTABLE_INSTANCE, False) - time.sleep(10) - cluster.reload() - final_node_count = cluster.serve_nodes - assert final_node_count == original_node_count + + for n in range(10): + time.sleep(10) + cluster.reload() + final_node_count = cluster.serve_nodes + try: + assert final_node_count == original_node_count + except AssertionError: + if n == 9: + raise # Unit test for logic diff --git a/spanner/cloud-client/snippets_test.py b/spanner/cloud-client/snippets_test.py index 199d69f16db..792694c6e1c 100644 --- a/spanner/cloud-client/snippets_test.py +++ b/spanner/cloud-client/snippets_test.py @@ -202,7 +202,9 @@ def test_query_with_struct(capsys): def test_query_with_array_of_struct(capsys): snippets.query_with_array_of_struct(INSTANCE_ID, DATABASE_ID) out, _ = capsys.readouterr() - assert 'SingerId: 8\nSingerId: 7\nSingerId: 6' in out + assert 'SingerId: 8' in out + assert 'SingerId: 7' in out + assert 'SingerId: 6' in out def test_query_struct_field(capsys):