119 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import boto3
 | |
| import pytest
 | |
| import sure  # noqa # pylint: disable=unused-import
 | |
| 
 | |
| from botocore.client import ClientError
 | |
| from moto import mock_s3control
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_create_access_point():
 | |
|     client = boto3.client("s3control", region_name="eu-west-1")
 | |
|     resp = client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     resp.should.have.key("AccessPointArn")
 | |
|     resp.should.have.key("Alias").equals("ap_name")
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_get_unknown_access_point():
 | |
|     client = boto3.client("s3control", region_name="ap-southeast-1")
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_access_point(AccountId="111111111111", Name="ap_name")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("NoSuchAccessPoint")
 | |
|     err["Message"].should.equal("The specified accesspoint does not exist")
 | |
|     err["AccessPointName"].should.equal("ap_name")
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_get_access_point_minimal():
 | |
|     client = boto3.client("s3control", region_name="ap-southeast-1")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     resp = client.get_access_point(AccountId="111111111111", Name="ap_name")
 | |
| 
 | |
|     resp.should.have.key("Name").equals("ap_name")
 | |
|     resp.should.have.key("Bucket").equals("mybucket")
 | |
|     resp.should.have.key("NetworkOrigin").equals("Internet")
 | |
|     resp.should.have.key("PublicAccessBlockConfiguration").equals(
 | |
|         {
 | |
|             "BlockPublicAcls": True,
 | |
|             "IgnorePublicAcls": True,
 | |
|             "BlockPublicPolicy": True,
 | |
|             "RestrictPublicBuckets": True,
 | |
|         }
 | |
|     )
 | |
|     resp.should.have.key("CreationDate")
 | |
|     resp.should.have.key("Alias").match("ap_name-[a-z0-9]+-s3alias")
 | |
|     resp.should.have.key("AccessPointArn").equals(
 | |
|         "arn:aws:s3:us-east-1:111111111111:accesspoint/ap_name"
 | |
|     )
 | |
|     resp.should.have.key("Endpoints")
 | |
| 
 | |
|     resp["Endpoints"].should.have.key("ipv4").equals(
 | |
|         "s3-accesspoint.us-east-1.amazonaws.com"
 | |
|     )
 | |
|     resp["Endpoints"].should.have.key("fips").equals(
 | |
|         "s3-accesspoint-fips.us-east-1.amazonaws.com"
 | |
|     )
 | |
|     resp["Endpoints"].should.have.key("fips_dualstack").equals(
 | |
|         "s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com"
 | |
|     )
 | |
|     resp["Endpoints"].should.have.key("dualstack").equals(
 | |
|         "s3-accesspoint.dualstack.us-east-1.amazonaws.com"
 | |
|     )
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_get_access_point_full():
 | |
|     client = boto3.client("s3control", region_name="ap-southeast-1")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111",
 | |
|         Name="ap_name",
 | |
|         Bucket="mybucket",
 | |
|         VpcConfiguration={"VpcId": "sth"},
 | |
|         PublicAccessBlockConfiguration={
 | |
|             "BlockPublicAcls": False,
 | |
|             "IgnorePublicAcls": False,
 | |
|             "BlockPublicPolicy": False,
 | |
|             "RestrictPublicBuckets": False,
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     resp = client.get_access_point(AccountId="111111111111", Name="ap_name")
 | |
| 
 | |
|     resp.should.have.key("Name").equals("ap_name")
 | |
|     resp.should.have.key("Bucket").equals("mybucket")
 | |
|     resp.should.have.key("NetworkOrigin").equals("VPC")
 | |
|     resp.should.have.key("VpcConfiguration").equals({"VpcId": "sth"})
 | |
|     resp.should.have.key("PublicAccessBlockConfiguration").equals(
 | |
|         {
 | |
|             "BlockPublicAcls": False,
 | |
|             "IgnorePublicAcls": False,
 | |
|             "BlockPublicPolicy": False,
 | |
|             "RestrictPublicBuckets": False,
 | |
|         }
 | |
|     )
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_delete_access_point():
 | |
|     client = boto3.client("s3control", region_name="ap-southeast-1")
 | |
| 
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     client.delete_access_point(AccountId="111111111111", Name="ap_name")
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_access_point(AccountId="111111111111", Name="ap_name")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("NoSuchAccessPoint")
 |