Skip to content

Commit 06562c4

Browse files
committed
Merge branch 'robust-integ-tests' into develop
* robust-integ-tests: Use waiter to ensure S3 key exists before proceeding
2 parents a1afca9 + 6f8b22f commit 06562c4

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

awscli/testutils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,16 @@ def head_object(self, bucket_name, key_name):
775775
response = client.head_object(Bucket=bucket_name, Key=key_name)
776776
return response
777777

778+
def wait_until_key_exists(self, bucket_name, key_name, extra_params=None,
779+
min_successes=3):
780+
client = self.create_client_for_bucket(bucket_name)
781+
waiter = client.get_waiter('object_exists')
782+
params = {'Bucket': bucket_name, 'Key': key_name}
783+
if extra_params is not None:
784+
params.update(extra_params)
785+
for _ in range(min_successes):
786+
waiter.wait(**params)
787+
778788
def assert_no_errors(self, p):
779789
self.assertEqual(
780790
p.rc, 0,

tests/integration/customizations/s3/test_plugin.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1817,6 +1817,7 @@ def test_verify_endpoint_url_is_used(self):
18171817

18181818
class TestSSERelatedParams(BaseS3IntegrationTest):
18191819
def download_and_assert_kms_object_integrity(self, bucket, key, contents):
1820+
self.wait_until_key_exists(bucket, key)
18201821
# Ensure the kms object can be download it by downloading it
18211822
# with --sse aws:kms is enabled to ensure sigv4 is used on the
18221823
# download, as it is required for kms.
@@ -2011,6 +2012,9 @@ def setUp(self):
20112012

20122013
def download_and_assert_sse_c_object_integrity(
20132014
self, bucket, key, encrypt_key, contents):
2015+
self.wait_until_key_exists(bucket, key,
2016+
{'SSECustomerKey': encrypt_key,
2017+
'SSECustomerAlgorithm': 'AES256'})
20142018
download_filename = os.path.join(self.files.rootdir, 'tmp', key)
20152019
p = aws('s3 cp s3://%s/%s %s --sse-c AES256 --sse-c-key %s' % (
20162020
bucket, key, download_filename, encrypt_key))

0 commit comments

Comments
 (0)