51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
import boto3
|
|
from botocore.client import ClientError
|
|
|
|
import pytest
|
|
import sure # noqa # pylint: disable=unused-import
|
|
from moto import mock_s3
|
|
|
|
|
|
@mock_s3
|
|
def test_create_bucket_with_ownership():
|
|
bucket = "bucket-with-owner"
|
|
ownership = "BucketOwnerPreferred"
|
|
client = boto3.client("s3")
|
|
client.create_bucket(Bucket=bucket, ObjectOwnership=ownership)
|
|
|
|
response = client.get_bucket_ownership_controls(Bucket=bucket)
|
|
response["OwnershipControls"]["Rules"][0]["ObjectOwnership"].should.equal(ownership)
|
|
|
|
|
|
@mock_s3
|
|
def test_put_ownership_to_bucket():
|
|
bucket = "bucket-updated-with-owner"
|
|
ownership = "ObjectWriter"
|
|
client = boto3.client("s3")
|
|
client.create_bucket(Bucket=bucket)
|
|
|
|
client.put_bucket_ownership_controls(
|
|
Bucket=bucket, OwnershipControls={"Rules": [{"ObjectOwnership": ownership}]}
|
|
)
|
|
|
|
response = client.get_bucket_ownership_controls(Bucket=bucket)
|
|
response["OwnershipControls"]["Rules"][0]["ObjectOwnership"].should.equal(ownership)
|
|
|
|
|
|
@mock_s3
|
|
def test_delete_ownership_from_bucket():
|
|
bucket = "bucket-with-owner-removed"
|
|
ownership = "BucketOwnerEnforced"
|
|
client = boto3.client("s3")
|
|
client.create_bucket(Bucket=bucket, ObjectOwnership=ownership)
|
|
|
|
client.delete_bucket_ownership_controls(Bucket=bucket)
|
|
|
|
with pytest.raises(ClientError) as ex:
|
|
client.get_bucket_ownership_controls(Bucket=bucket)
|
|
|
|
ex.value.response["Error"]["Code"].should.equal("OwnershipControlsNotFoundError")
|
|
ex.value.response["Error"]["Message"].should.equal(
|
|
"The bucket ownership controls were not found"
|
|
)
|