117 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.5 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_get_access_point_policy():
 | |
|     client = boto3.client("s3control", region_name="us-west-2")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     policy = """{
 | |
|   "Version": "2012-10-17",
 | |
|   "Statement": [
 | |
|     {
 | |
|       "Sid": "",
 | |
|       "Effect": "Allow",
 | |
|       "Action": "s3:GetObjectTagging",
 | |
|       "Resource": "arn:aws:s3:us-east-1:123456789012:accesspoint/mybucket/object/*",
 | |
|       "Principal": {
 | |
|         "AWS": "*"
 | |
|       }
 | |
|     }
 | |
|   ]
 | |
| }"""
 | |
|     client.put_access_point_policy(
 | |
|         AccountId="111111111111", Name="ap_name", Policy=policy
 | |
|     )
 | |
| 
 | |
|     resp = client.get_access_point_policy(AccountId="111111111111", Name="ap_name")
 | |
|     resp.should.have.key("Policy").equals(policy)
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_get_unknown_access_point_policy():
 | |
|     client = boto3.client("s3control", region_name="ap-southeast-1")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_access_point_policy(AccountId="111111111111", Name="ap_name")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("NoSuchAccessPointPolicy")
 | |
|     err["Message"].should.equal("The specified accesspoint policy does not exist")
 | |
|     err["AccessPointName"].should.equal("ap_name")
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_get_access_point_policy_status():
 | |
|     client = boto3.client("s3control", region_name="us-west-2")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     policy = """{
 | |
|   "Version": "2012-10-17",
 | |
|   "Statement": [
 | |
|     {
 | |
|       "Sid": "",
 | |
|       "Effect": "Allow",
 | |
|       "Action": "s3:GetObjectTagging",
 | |
|       "Resource": "arn:aws:s3:us-east-1:123456789012:accesspoint/mybucket/object/*",
 | |
|       "Principal": {
 | |
|         "AWS": "*"
 | |
|       }
 | |
|     }
 | |
|   ]
 | |
| }"""
 | |
|     client.put_access_point_policy(
 | |
|         AccountId="111111111111", Name="ap_name", Policy=policy
 | |
|     )
 | |
| 
 | |
|     resp = client.get_access_point_policy_status(
 | |
|         AccountId="111111111111", Name="ap_name"
 | |
|     )
 | |
|     resp.should.have.key("PolicyStatus").equals({"IsPublic": True})
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_delete_access_point_policy():
 | |
|     client = boto3.client("s3control", region_name="us-west-2")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     policy = """some json policy"""
 | |
|     client.put_access_point_policy(
 | |
|         AccountId="111111111111", Name="ap_name", Policy=policy
 | |
|     )
 | |
| 
 | |
|     client.delete_access_point_policy(AccountId="111111111111", Name="ap_name")
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_access_point_policy(AccountId="111111111111", Name="ap_name")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("NoSuchAccessPointPolicy")
 | |
| 
 | |
| 
 | |
| @mock_s3control
 | |
| def test_get_unknown_access_point_policy_status():
 | |
|     client = boto3.client("s3control", region_name="ap-southeast-1")
 | |
|     client.create_access_point(
 | |
|         AccountId="111111111111", Name="ap_name", Bucket="mybucket"
 | |
|     )
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_access_point_policy_status(AccountId="111111111111", Name="ap_name")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("NoSuchAccessPointPolicy")
 | |
|     err["Message"].should.equal("The specified accesspoint policy does not exist")
 | |
|     err["AccessPointName"].should.equal("ap_name")
 |