From 05da181998d19bfb8ba0b4171c77e4df78923df3 Mon Sep 17 00:00:00 2001 From: Vladimir Domnich Date: Tue, 26 Jul 2022 20:35:41 +0300 Subject: [PATCH] Add retries when checking presence of buckets in list Signed-off-by: Vladimir Domnich --- pytest_tests/testsuites/services/test_s3_gate.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pytest_tests/testsuites/services/test_s3_gate.py b/pytest_tests/testsuites/services/test_s3_gate.py index 805d499..b08d064 100644 --- a/pytest_tests/testsuites/services/test_s3_gate.py +++ b/pytest_tests/testsuites/services/test_s3_gate.py @@ -1,6 +1,7 @@ import logging import os from random import choice, choices +from time import sleep import allure import pytest @@ -92,7 +93,16 @@ class TestS3Gate: bucket_2 = s3_gate_bucket.create_bucket_s3(self.s3_client) with allure.step('Check buckets are presented in the system'): - buckets = s3_gate_bucket.list_buckets_s3(self.s3_client) + # We have an issue that sometimes bucket is not available in the list + # immediately after creation, so we take several attempts with sleep + buckets = [] + for attempt in range(8): + with allure.step(f'Loading buckets list (attempt #{attempt})'): + buckets = s3_gate_bucket.list_buckets_s3(self.s3_client) + if bucket_1 in buckets and bucket_2 in buckets: + break # If both buckets are in the list, stop attempts + with allure.step(f'Buckets were not in the list, waiting before retry'): + sleep(s3_gate_bucket.S3_SYNC_WAIT_TIME) assert bucket_1 in buckets, f'Expected bucket {bucket_1} is in the list' assert bucket_2 in buckets, f'Expected bucket {bucket_2} is in the list'