Index: third_party/gsutil/third_party/boto/tests/unit/vpc/test_routetable.py |
diff --git a/third_party/gsutil/third_party/boto/tests/unit/vpc/test_routetable.py b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_routetable.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c90e56c4f67882e67a504c8cb9c12858c0adf7e6 |
--- /dev/null |
+++ b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_routetable.py |
@@ -0,0 +1,440 @@ |
+from tests.unit import unittest |
+from tests.unit import AWSMockServiceTestCase |
+ |
+from boto.vpc import VPCConnection, RouteTable |
+ |
+ |
+class TestDescribeRouteTables(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <DescribeRouteTablesResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>6f570b0b-9c18-4b07-bdec-73740dcf861a</requestId> |
+ <routeTableSet> |
+ <item> |
+ <routeTableId>rtb-13ad487a</routeTableId> |
+ <vpcId>vpc-11ad4878</vpcId> |
+ <routeSet> |
+ <item> |
+ <destinationCidrBlock>10.0.0.0/22</destinationCidrBlock> |
+ <gatewayId>local</gatewayId> |
+ <state>active</state> |
+ <origin>CreateRouteTable</origin> |
+ </item> |
+ </routeSet> |
+ <associationSet> |
+ <item> |
+ <routeTableAssociationId>rtbassoc-12ad487b</routeTableAssociationId> |
+ <routeTableId>rtb-13ad487a</routeTableId> |
+ <main>true</main> |
+ </item> |
+ </associationSet> |
+ <tagSet/> |
+ </item> |
+ <item> |
+ <routeTableId>rtb-f9ad4890</routeTableId> |
+ <vpcId>vpc-11ad4878</vpcId> |
+ <routeSet> |
+ <item> |
+ <destinationCidrBlock>10.0.0.0/22</destinationCidrBlock> |
+ <gatewayId>local</gatewayId> |
+ <state>active</state> |
+ <origin>CreateRouteTable</origin> |
+ </item> |
+ <item> |
+ <destinationCidrBlock>0.0.0.0/0</destinationCidrBlock> |
+ <gatewayId>igw-eaad4883</gatewayId> |
+ <state>active</state> |
+ </item> |
+ <item> |
+ <destinationCidrBlock>10.0.0.0/21</destinationCidrBlock> |
+ <networkInterfaceId>eni-884ec1d1</networkInterfaceId> |
+ <state>blackhole</state> |
+ <origin>CreateRoute</origin> |
+ </item> |
+ <item> |
+ <destinationCidrBlock>11.0.0.0/22</destinationCidrBlock> |
+ <vpcPeeringConnectionId>pcx-efc52b86</vpcPeeringConnectionId> |
+ <state>blackhole</state> |
+ <origin>CreateRoute</origin> |
+ </item> |
+ </routeSet> |
+ <associationSet> |
+ <item> |
+ <routeTableAssociationId>rtbassoc-faad4893</routeTableAssociationId> |
+ <routeTableId>rtb-f9ad4890</routeTableId> |
+ <subnetId>subnet-15ad487c</subnetId> |
+ </item> |
+ </associationSet> |
+ <tagSet/> |
+ </item> |
+ </routeTableSet> |
+ </DescribeRouteTablesResponse> |
+ """ |
+ |
+ def test_get_all_route_tables(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.get_all_route_tables( |
+ ['rtb-13ad487a', 'rtb-f9ad4890'], filters=[('route.state', 'active')]) |
+ self.assert_request_parameters({ |
+ 'Action': 'DescribeRouteTables', |
+ 'RouteTableId.1': 'rtb-13ad487a', |
+ 'RouteTableId.2': 'rtb-f9ad4890', |
+ 'Filter.1.Name': 'route.state', |
+ 'Filter.1.Value.1': 'active'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(len(api_response), 2) |
+ self.assertIsInstance(api_response[0], RouteTable) |
+ self.assertEquals(api_response[0].id, 'rtb-13ad487a') |
+ self.assertEquals(len(api_response[0].routes), 1) |
+ self.assertEquals(api_response[0].routes[0].destination_cidr_block, '10.0.0.0/22') |
+ self.assertEquals(api_response[0].routes[0].gateway_id, 'local') |
+ self.assertEquals(api_response[0].routes[0].state, 'active') |
+ self.assertEquals(len(api_response[0].associations), 1) |
+ self.assertEquals(api_response[0].associations[0].id, 'rtbassoc-12ad487b') |
+ self.assertEquals(api_response[0].associations[0].route_table_id, 'rtb-13ad487a') |
+ self.assertIsNone(api_response[0].associations[0].subnet_id) |
+ self.assertEquals(api_response[0].associations[0].main, True) |
+ self.assertEquals(api_response[1].id, 'rtb-f9ad4890') |
+ self.assertEquals(len(api_response[1].routes), 4) |
+ self.assertEquals(api_response[1].routes[0].destination_cidr_block, '10.0.0.0/22') |
+ self.assertEquals(api_response[1].routes[0].gateway_id, 'local') |
+ self.assertEquals(api_response[1].routes[0].state, 'active') |
+ self.assertEquals(api_response[1].routes[1].destination_cidr_block, '0.0.0.0/0') |
+ self.assertEquals(api_response[1].routes[1].gateway_id, 'igw-eaad4883') |
+ self.assertEquals(api_response[1].routes[1].state, 'active') |
+ self.assertEquals(api_response[1].routes[2].destination_cidr_block, '10.0.0.0/21') |
+ self.assertEquals(api_response[1].routes[2].interface_id, 'eni-884ec1d1') |
+ self.assertEquals(api_response[1].routes[2].state, 'blackhole') |
+ self.assertEquals(api_response[1].routes[3].destination_cidr_block, '11.0.0.0/22') |
+ self.assertEquals(api_response[1].routes[3].vpc_peering_connection_id, 'pcx-efc52b86') |
+ self.assertEquals(api_response[1].routes[3].state, 'blackhole') |
+ self.assertEquals(len(api_response[1].associations), 1) |
+ self.assertEquals(api_response[1].associations[0].id, 'rtbassoc-faad4893') |
+ self.assertEquals(api_response[1].associations[0].route_table_id, 'rtb-f9ad4890') |
+ self.assertEquals(api_response[1].associations[0].subnet_id, 'subnet-15ad487c') |
+ self.assertEquals(api_response[1].associations[0].main, False) |
+ |
+ |
+class TestAssociateRouteTable(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <AssociateRouteTableResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <associationId>rtbassoc-f8ad4891</associationId> |
+ </AssociateRouteTableResponse> |
+ """ |
+ |
+ def test_associate_route_table(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.associate_route_table( |
+ 'rtb-e4ad488d', 'subnet-15ad487c') |
+ self.assert_request_parameters({ |
+ 'Action': 'AssociateRouteTable', |
+ 'RouteTableId': 'rtb-e4ad488d', |
+ 'SubnetId': 'subnet-15ad487c'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, 'rtbassoc-f8ad4891') |
+ |
+ |
+class TestDisassociateRouteTable(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <DisassociateRouteTableResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <return>true</return> |
+ </DisassociateRouteTableResponse> |
+ """ |
+ |
+ def test_disassociate_route_table(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.disassociate_route_table('rtbassoc-fdad4894') |
+ self.assert_request_parameters({ |
+ 'Action': 'DisassociateRouteTable', |
+ 'AssociationId': 'rtbassoc-fdad4894'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ |
+class TestCreateRouteTable(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <CreateRouteTableResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <routeTable> |
+ <routeTableId>rtb-f9ad4890</routeTableId> |
+ <vpcId>vpc-11ad4878</vpcId> |
+ <routeSet> |
+ <item> |
+ <destinationCidrBlock>10.0.0.0/22</destinationCidrBlock> |
+ <gatewayId>local</gatewayId> |
+ <state>active</state> |
+ </item> |
+ </routeSet> |
+ <associationSet/> |
+ <tagSet/> |
+ </routeTable> |
+ </CreateRouteTableResponse> |
+ """ |
+ |
+ def test_create_route_table(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.create_route_table('vpc-11ad4878') |
+ self.assert_request_parameters({ |
+ 'Action': 'CreateRouteTable', |
+ 'VpcId': 'vpc-11ad4878'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertIsInstance(api_response, RouteTable) |
+ self.assertEquals(api_response.id, 'rtb-f9ad4890') |
+ self.assertEquals(len(api_response.routes), 1) |
+ self.assertEquals(api_response.routes[0].destination_cidr_block, '10.0.0.0/22') |
+ self.assertEquals(api_response.routes[0].gateway_id, 'local') |
+ self.assertEquals(api_response.routes[0].state, 'active') |
+ |
+ |
+class TestDeleteRouteTable(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <DeleteRouteTableResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <return>true</return> |
+ </DeleteRouteTableResponse> |
+ """ |
+ |
+ def test_delete_route_table(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.delete_route_table('rtb-e4ad488d') |
+ self.assert_request_parameters({ |
+ 'Action': 'DeleteRouteTable', |
+ 'RouteTableId': 'rtb-e4ad488d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ |
+class TestReplaceRouteTableAssociation(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <ReplaceRouteTableAssociationResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <newAssociationId>rtbassoc-faad4893</newAssociationId> |
+ </ReplaceRouteTableAssociationResponse> |
+ """ |
+ |
+ def test_replace_route_table_assocation(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.replace_route_table_assocation( |
+ 'rtbassoc-faad4893', 'rtb-f9ad4890') |
+ self.assert_request_parameters({ |
+ 'Action': 'ReplaceRouteTableAssociation', |
+ 'AssociationId': 'rtbassoc-faad4893', |
+ 'RouteTableId': 'rtb-f9ad4890'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_replace_route_table_association_with_assoc(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.replace_route_table_association_with_assoc( |
+ 'rtbassoc-faad4893', 'rtb-f9ad4890') |
+ self.assert_request_parameters({ |
+ 'Action': 'ReplaceRouteTableAssociation', |
+ 'AssociationId': 'rtbassoc-faad4893', |
+ 'RouteTableId': 'rtb-f9ad4890'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, 'rtbassoc-faad4893') |
+ |
+ |
+class TestCreateRoute(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <CreateRouteResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <return>true</return> |
+ </CreateRouteResponse> |
+ """ |
+ |
+ def test_create_route_gateway(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.create_route( |
+ 'rtb-e4ad488d', '0.0.0.0/0', gateway_id='igw-eaad4883') |
+ self.assert_request_parameters({ |
+ 'Action': 'CreateRoute', |
+ 'RouteTableId': 'rtb-e4ad488d', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'GatewayId': 'igw-eaad4883'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_create_route_instance(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.create_route( |
+ 'rtb-g8ff4ea2', '0.0.0.0/0', instance_id='i-1a2b3c4d') |
+ self.assert_request_parameters({ |
+ 'Action': 'CreateRoute', |
+ 'RouteTableId': 'rtb-g8ff4ea2', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'InstanceId': 'i-1a2b3c4d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_create_route_interface(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.create_route( |
+ 'rtb-g8ff4ea2', '0.0.0.0/0', interface_id='eni-1a2b3c4d') |
+ self.assert_request_parameters({ |
+ 'Action': 'CreateRoute', |
+ 'RouteTableId': 'rtb-g8ff4ea2', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'NetworkInterfaceId': 'eni-1a2b3c4d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_create_route_vpc_peering_connection(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.create_route( |
+ 'rtb-g8ff4ea2', '0.0.0.0/0', vpc_peering_connection_id='pcx-1a2b3c4d') |
+ self.assert_request_parameters({ |
+ 'Action': 'CreateRoute', |
+ 'RouteTableId': 'rtb-g8ff4ea2', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'VpcPeeringConnectionId': 'pcx-1a2b3c4d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ |
+class TestReplaceRoute(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <CreateRouteResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <return>true</return> |
+ </CreateRouteResponse> |
+ """ |
+ |
+ def test_replace_route_gateway(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.replace_route( |
+ 'rtb-e4ad488d', '0.0.0.0/0', gateway_id='igw-eaad4883') |
+ self.assert_request_parameters({ |
+ 'Action': 'ReplaceRoute', |
+ 'RouteTableId': 'rtb-e4ad488d', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'GatewayId': 'igw-eaad4883'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_replace_route_instance(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.replace_route( |
+ 'rtb-g8ff4ea2', '0.0.0.0/0', instance_id='i-1a2b3c4d') |
+ self.assert_request_parameters({ |
+ 'Action': 'ReplaceRoute', |
+ 'RouteTableId': 'rtb-g8ff4ea2', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'InstanceId': 'i-1a2b3c4d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_replace_route_interface(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.replace_route( |
+ 'rtb-g8ff4ea2', '0.0.0.0/0', interface_id='eni-1a2b3c4d') |
+ self.assert_request_parameters({ |
+ 'Action': 'ReplaceRoute', |
+ 'RouteTableId': 'rtb-g8ff4ea2', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'NetworkInterfaceId': 'eni-1a2b3c4d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ def test_replace_route_vpc_peering_connection(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.replace_route( |
+ 'rtb-g8ff4ea2', '0.0.0.0/0', vpc_peering_connection_id='pcx-1a2b3c4d') |
+ self.assert_request_parameters({ |
+ 'Action': 'ReplaceRoute', |
+ 'RouteTableId': 'rtb-g8ff4ea2', |
+ 'DestinationCidrBlock': '0.0.0.0/0', |
+ 'VpcPeeringConnectionId': 'pcx-1a2b3c4d'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ |
+class TestDeleteRoute(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <DeleteRouteTableResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> |
+ <return>true</return> |
+ </DeleteRouteTableResponse> |
+ """ |
+ |
+ def test_delete_route(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.delete_route('rtb-e4ad488d', '172.16.1.0/24') |
+ self.assert_request_parameters({ |
+ 'Action': 'DeleteRoute', |
+ 'RouteTableId': 'rtb-e4ad488d', |
+ 'DestinationCidrBlock': '172.16.1.0/24'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |