| 
									
										
										
										
											2022-02-24 19:07:54 -01:00
										 |  |  | 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( | 
					
						
							| 
									
										
										
										
											2022-03-10 13:39:59 -01:00
										 |  |  |         AccountId="111111111111", Name="ap_name", Bucket="mybucket" | 
					
						
							| 
									
										
										
										
											2022-02-24 19:07:54 -01:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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( | 
					
						
							| 
									
										
										
										
											2022-03-10 13:39:59 -01:00
										 |  |  |         AccountId="111111111111", Name="ap_name", Bucket="mybucket" | 
					
						
							| 
									
										
										
										
											2022-02-24 19:07:54 -01:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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( | 
					
						
							| 
									
										
										
										
											2022-08-13 09:49:43 +00:00
										 |  |  |         "arn:aws:s3:us-east-1:111111111111:accesspoint/ap_name" | 
					
						
							| 
									
										
										
										
											2022-02-24 19:07:54 -01:00
										 |  |  |     ) | 
					
						
							|  |  |  |     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( | 
					
						
							| 
									
										
										
										
											2022-03-10 13:39:59 -01:00
										 |  |  |         AccountId="111111111111", Name="ap_name", Bucket="mybucket" | 
					
						
							| 
									
										
										
										
											2022-02-24 19:07:54 -01:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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") |