| Index: third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc_peering_connection.py
|
| diff --git a/third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc_peering_connection.py b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc_peering_connection.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..503e5606548a5bb9484ccb3840908356e8a1e890
|
| --- /dev/null
|
| +++ b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc_peering_connection.py
|
| @@ -0,0 +1,275 @@
|
| +# Copyright (c) 2014 Skytap http://skytap.com/
|
| +#
|
| +# Permission is hereby granted, free of charge, to any person obtaining a
|
| +# copy of this software and associated documentation files (the
|
| +# "Software"), to deal in the Software without restriction, including
|
| +# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| +# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| +# persons to whom the Software is furnished to do so, subject to the fol-
|
| +# lowing conditions:
|
| +#
|
| +# The above copyright notice and this permission notice shall be included
|
| +# in all copies or substantial portions of the Software.
|
| +#
|
| +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| +# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| +# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| +# IN THE SOFTWARE.
|
| +
|
| +from tests.unit import mock, unittest
|
| +from tests.unit import AWSMockServiceTestCase
|
| +
|
| +from boto.vpc import VpcPeeringConnection, VPCConnection, Subnet
|
| +
|
| +
|
| +class TestDescribeVpcPeeringConnections(AWSMockServiceTestCase):
|
| + DESCRIBE_VPC_PEERING_CONNECTIONS= b"""<?xml version="1.0" encoding="UTF-8"?>
|
| +<DescribeVpcPeeringConnectionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <vpcPeeringConnectionSet>
|
| + <item>
|
| + <vpcPeeringConnectionId>pcx-111aaa22</vpcPeeringConnectionId>
|
| + <requesterVpcInfo>
|
| + <ownerId>777788889999</ownerId>
|
| + <vpcId>vpc-1a2b3c4d</vpcId>
|
| + <cidrBlock>172.31.0.0/16</cidrBlock>
|
| + </requesterVpcInfo>
|
| + <accepterVpcInfo>
|
| + <ownerId>111122223333</ownerId>
|
| + <vpcId>vpc-aa22cc33</vpcId>
|
| + </accepterVpcInfo>
|
| + <status>
|
| + <code>pending-acceptance</code>
|
| + <message>Pending Acceptance by 111122223333</message>
|
| + </status>
|
| + <expirationTime>2014-02-17T16:00:50.000Z</expirationTime>
|
| + </item>
|
| + <item>
|
| + <vpcPeeringConnectionId>pcx-444bbb88</vpcPeeringConnectionId>
|
| + <requesterVpcInfo>
|
| + <ownerId>1237897234</ownerId>
|
| + <vpcId>vpc-2398abcd</vpcId>
|
| + <cidrBlock>172.30.0.0/16</cidrBlock>
|
| + </requesterVpcInfo>
|
| + <accepterVpcInfo>
|
| + <ownerId>98654313</ownerId>
|
| + <vpcId>vpc-0983bcda</vpcId>
|
| + </accepterVpcInfo>
|
| + <status>
|
| + <code>pending-acceptance</code>
|
| + <message>Pending Acceptance by 98654313</message>
|
| + </status>
|
| + <expirationTime>2015-02-17T16:00:50.000Z</expirationTime>
|
| + </item>
|
| + </vpcPeeringConnectionSet>
|
| +</DescribeVpcPeeringConnectionsResponse>"""
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return self.DESCRIBE_VPC_PEERING_CONNECTIONS
|
| +
|
| + def test_get_vpc_peering_connections(self):
|
| + self.set_http_response(status_code=200)
|
| + api_response = self.service_connection.get_all_vpc_peering_connections(
|
| + ['pcx-111aaa22', 'pcx-444bbb88'], filters=[('status-code', ['pending-acceptance'])])
|
| +
|
| + self.assertEqual(len(api_response), 2)
|
| +
|
| + for vpc_peering_connection in api_response:
|
| + if vpc_peering_connection.id == 'pcx-111aaa22':
|
| + self.assertEqual(vpc_peering_connection.id, 'pcx-111aaa22')
|
| + self.assertEqual(vpc_peering_connection.status_code, 'pending-acceptance')
|
| + self.assertEqual(vpc_peering_connection.status_message, 'Pending Acceptance by 111122223333')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '777788889999')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-1a2b3c4d')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '172.31.0.0/16')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '111122223333')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-aa22cc33')
|
| + self.assertEqual(vpc_peering_connection.expiration_time, '2014-02-17T16:00:50.000Z')
|
| + else:
|
| + self.assertEqual(vpc_peering_connection.id, 'pcx-444bbb88')
|
| + self.assertEqual(vpc_peering_connection.status_code, 'pending-acceptance')
|
| + self.assertEqual(vpc_peering_connection.status_message, 'Pending Acceptance by 98654313')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '1237897234')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-2398abcd')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '172.30.0.0/16')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '98654313')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-0983bcda')
|
| + self.assertEqual(vpc_peering_connection.expiration_time, '2015-02-17T16:00:50.000Z')
|
| +
|
| +
|
| +class TestCreateVpcPeeringConnection(AWSMockServiceTestCase):
|
| + CREATE_VPC_PEERING_CONNECTION= b"""<CreateVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <vpcPeeringConnection>
|
| + <vpcPeeringConnectionId>pcx-73a5401a</vpcPeeringConnectionId>
|
| + <requesterVpcInfo>
|
| + <ownerId>777788889999</ownerId>
|
| + <vpcId>vpc-1a2b3c4d</vpcId>
|
| + <cidrBlock>10.0.0.0/28</cidrBlock>
|
| + </requesterVpcInfo>
|
| + <accepterVpcInfo>
|
| + <ownerId>123456789012</ownerId>
|
| + <vpcId>vpc-a1b2c3d4</vpcId>
|
| + </accepterVpcInfo>
|
| + <status>
|
| + <code>initiating-request</code>
|
| + <message>Initiating Request to 123456789012</message>
|
| + </status>
|
| + <expirationTime>2014-02-18T14:37:25.000Z</expirationTime>
|
| + <tagSet/>
|
| + </vpcPeeringConnection>
|
| +</CreateVpcPeeringConnectionResponse>"""
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return self.CREATE_VPC_PEERING_CONNECTION
|
| +
|
| + def test_create_vpc_peering_connection(self):
|
| + self.set_http_response(status_code=200)
|
| + vpc_peering_connection = self.service_connection.create_vpc_peering_connection('vpc-1a2b3c4d', 'vpc-a1b2c3d4', '123456789012')
|
| +
|
| + self.assertEqual(vpc_peering_connection.id, 'pcx-73a5401a')
|
| + self.assertEqual(vpc_peering_connection.status_code, 'initiating-request')
|
| + self.assertEqual(vpc_peering_connection.status_message, 'Initiating Request to 123456789012')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '777788889999')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-1a2b3c4d')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '10.0.0.0/28')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '123456789012')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-a1b2c3d4')
|
| + self.assertEqual(vpc_peering_connection.expiration_time, '2014-02-18T14:37:25.000Z')
|
| +
|
| +class TestDeleteVpcPeeringConnection(AWSMockServiceTestCase):
|
| + DELETE_VPC_PEERING_CONNECTION= b"""<DeleteVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <return>true</return>
|
| +</DeleteVpcPeeringConnectionResponse>"""
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return self.DELETE_VPC_PEERING_CONNECTION
|
| +
|
| + def test_delete_vpc_peering_connection(self):
|
| + self.set_http_response(status_code=200)
|
| + self.assertEquals(self.service_connection.delete_vpc_peering_connection('pcx-12345678'), True)
|
| +
|
| +class TestDeleteVpcPeeringConnectionShortForm(unittest.TestCase):
|
| + DESCRIBE_VPC_PEERING_CONNECTIONS= b"""<?xml version="1.0" encoding="UTF-8"?>
|
| +<DescribeVpcPeeringConnectionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <vpcPeeringConnectionSet>
|
| + <item>
|
| + <vpcPeeringConnectionId>pcx-111aaa22</vpcPeeringConnectionId>
|
| + <requesterVpcInfo>
|
| + <ownerId>777788889999</ownerId>
|
| + <vpcId>vpc-1a2b3c4d</vpcId>
|
| + <cidrBlock>172.31.0.0/16</cidrBlock>
|
| + </requesterVpcInfo>
|
| + <accepterVpcInfo>
|
| + <ownerId>111122223333</ownerId>
|
| + <vpcId>vpc-aa22cc33</vpcId>
|
| + </accepterVpcInfo>
|
| + <status>
|
| + <code>pending-acceptance</code>
|
| + <message>Pending Acceptance by 111122223333</message>
|
| + </status>
|
| + <expirationTime>2014-02-17T16:00:50.000Z</expirationTime>
|
| + </item>
|
| + </vpcPeeringConnectionSet>
|
| +</DescribeVpcPeeringConnectionsResponse>"""
|
| +
|
| + DELETE_VPC_PEERING_CONNECTION= b"""<DeleteVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <return>true</return>
|
| +</DeleteVpcPeeringConnectionResponse>"""
|
| +
|
| + def test_delete_vpc_peering_connection(self):
|
| + vpc_conn = VPCConnection(aws_access_key_id='aws_access_key_id',
|
| + aws_secret_access_key='aws_secret_access_key')
|
| +
|
| + mock_response = mock.Mock()
|
| + mock_response.read.return_value = self.DESCRIBE_VPC_PEERING_CONNECTIONS
|
| + mock_response.status = 200
|
| + vpc_conn.make_request = mock.Mock(return_value=mock_response)
|
| + vpc_peering_connections = vpc_conn.get_all_vpc_peering_connections()
|
| +
|
| + self.assertEquals(1, len(vpc_peering_connections))
|
| + vpc_peering_connection = vpc_peering_connections[0]
|
| +
|
| + mock_response = mock.Mock()
|
| + mock_response.read.return_value = self.DELETE_VPC_PEERING_CONNECTION
|
| + mock_response.status = 200
|
| + vpc_conn.make_request = mock.Mock(return_value=mock_response)
|
| + self.assertEquals(True, vpc_peering_connection.delete())
|
| +
|
| + self.assertIn('DeleteVpcPeeringConnection', vpc_conn.make_request.call_args_list[0][0])
|
| + self.assertNotIn('DeleteVpc', vpc_conn.make_request.call_args_list[0][0])
|
| +
|
| +class TestRejectVpcPeeringConnection(AWSMockServiceTestCase):
|
| + REJECT_VPC_PEERING_CONNECTION= b"""<RejectVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <return>true</return>
|
| +</RejectVpcPeeringConnectionResponse>"""
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return self.REJECT_VPC_PEERING_CONNECTION
|
| +
|
| + def test_reject_vpc_peering_connection(self):
|
| + self.set_http_response(status_code=200)
|
| + self.assertEquals(self.service_connection.reject_vpc_peering_connection('pcx-12345678'), True)
|
| +
|
| +
|
| +class TestAcceptVpcPeeringConnection(AWSMockServiceTestCase):
|
| + ACCEPT_VPC_PEERING_CONNECTION= b"""<AcceptVpcPeeringConnectionResponse xmlns="http://ec2.amazonaws.com/doc/2014-05-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <vpcPeeringConnection>
|
| + <vpcPeeringConnectionId>pcx-1a2b3c4d</vpcPeeringConnectionId>
|
| + <requesterVpcInfo>
|
| + <ownerId>123456789012</ownerId>
|
| + <vpcId>vpc-1a2b3c4d</vpcId>
|
| + <cidrBlock>10.0.0.0/28</cidrBlock>
|
| + </requesterVpcInfo>
|
| + <accepterVpcInfo>
|
| + <ownerId>777788889999</ownerId>
|
| + <vpcId>vpc-111aaa22</vpcId>
|
| + <cidrBlock>10.0.1.0/28</cidrBlock>
|
| + </accepterVpcInfo>
|
| + <status>
|
| + <code>active</code>
|
| + <message>Active</message>
|
| + </status>
|
| + <tagSet/>
|
| + </vpcPeeringConnection>
|
| +</AcceptVpcPeeringConnectionResponse>"""
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return self.ACCEPT_VPC_PEERING_CONNECTION
|
| +
|
| + def test_accept_vpc_peering_connection(self):
|
| + self.set_http_response(status_code=200)
|
| + vpc_peering_connection = self.service_connection.accept_vpc_peering_connection('pcx-1a2b3c4d')
|
| +
|
| + self.assertEqual(vpc_peering_connection.id, 'pcx-1a2b3c4d')
|
| + self.assertEqual(vpc_peering_connection.status_code, 'active')
|
| + self.assertEqual(vpc_peering_connection.status_message, 'Active')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.owner_id, '123456789012')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.vpc_id, 'vpc-1a2b3c4d')
|
| + self.assertEqual(vpc_peering_connection.requester_vpc_info.cidr_block, '10.0.0.0/28')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.owner_id, '777788889999')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.vpc_id, 'vpc-111aaa22')
|
| + self.assertEqual(vpc_peering_connection.accepter_vpc_info.cidr_block, '10.0.1.0/28')
|
| +
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|