diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py b/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py index 0824f44a..16402e77 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py @@ -140,3 +140,30 @@ class TestS3GateBucket: s3_client.delete_bucket(bucket) with pytest.raises(Exception, match=r".*Not Found.*"): s3_client.head_bucket(bucket) + + @allure.title("[NEGATIVE] Delete non-empty bucket (s3_client={s3_client})") + def test_s3_check_availability_non_empty_bucket_after_deleting( + self, + bucket: str, + simple_object_size: ObjectSize, + s3_client: S3ClientWrapper, + ): + object_path = generate_file(simple_object_size.value) + object_name = s3_helper.object_key_from_file_path(object_path) + + with reporter.step("Put object into bucket"): + s3_client.put_object(bucket, object_path) + + with reporter.step("Check that object appears in bucket"): + objects = s3_client.list_objects(bucket) + assert objects, f"Expected bucket with object, got empty {objects}" + assert object_name in objects, f"Object {object_name} not found in bucket object list {objects}" + + with reporter.step("Try to delete not empty bucket and get error"): + with pytest.raises(Exception, match=r".*The bucket you tried to delete is not empty.*"): + s3_client.delete_bucket(bucket) + + with reporter.step("Check bucket availability"): + objects = s3_client.list_objects(bucket) + assert objects, f"Expected bucket with object, got empty {objects}" + assert object_name in objects, f"Object {object_name} not found in bucket object list {objects}"