From af475e70acbaf29855f921fd2416823dbaa23efe Mon Sep 17 00:00:00 2001 From: Howard Lopez <38118252+howardlopez@users.noreply.github.com> Date: Fri, 9 Aug 2019 09:51:44 -0700 Subject: [PATCH] Smoke cleanup waiter (#1864) * Add waiter to S3 integration test to prevent failed bucket deletions * Add changelog --- .changes/nextrelease/smoke_cleanup_waiter.json | 7 +++++++ tests/Integ/S3Context.php | 13 +++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 .changes/nextrelease/smoke_cleanup_waiter.json diff --git a/.changes/nextrelease/smoke_cleanup_waiter.json b/.changes/nextrelease/smoke_cleanup_waiter.json new file mode 100644 index 0000000000..a9da7c9f7e --- /dev/null +++ b/.changes/nextrelease/smoke_cleanup_waiter.json @@ -0,0 +1,7 @@ +[ + { + "type": "bugfix", + "category": "Test\\Integ", + "description": "Add waiter to S3 integration test to prevent failed bucket deletions on cleanup." + } +] diff --git a/tests/Integ/S3Context.php b/tests/Integ/S3Context.php index 756a4bfff6..8ae2cfe8d5 100644 --- a/tests/Integ/S3Context.php +++ b/tests/Integ/S3Context.php @@ -85,7 +85,20 @@ public static function createTestBucket() public static function deleteTestBucket() { $client = self::getSdk()->createS3(); + $result = $client->listObjectsV2([ + 'Bucket' => self::getResourceName() + ]); + + // Delete objects & wait until no longer available before deleting bucket $client->deleteMatchingObjects(self::getResourceName(), '', '//'); + foreach ($result['Contents'] as $object) { + $client->waitUntil('ObjectNotExists', [ + 'Bucket' => self::getResourceName(), + 'Key' => $object['Key'] + ]); + } + + // Delete bucket and wait until bucket is no longer available $client->deleteBucket(['Bucket' => self::getResourceName()]); $client->waitUntil('BucketNotExists', [ 'Bucket' => self::getResourceName(),