Index: third_party/gsutil/third_party/boto/tests/unit/vpc/test_subnet.py |
diff --git a/third_party/gsutil/third_party/boto/tests/unit/vpc/test_subnet.py b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_subnet.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..209d4f0f42ce6e029e092e1b3e47203bf0263be9 |
--- /dev/null |
+++ b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_subnet.py |
@@ -0,0 +1,133 @@ |
+from tests.compat import OrderedDict |
+from tests.unit import unittest |
+from tests.unit import AWSMockServiceTestCase |
+ |
+from boto.vpc import VPCConnection, Subnet |
+ |
+ |
+class TestDescribeSubnets(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <DescribeSubnetsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId> |
+ <subnetSet> |
+ <item> |
+ <subnetId>subnet-9d4a7b6c</subnetId> |
+ <state>available</state> |
+ <vpcId>vpc-1a2b3c4d</vpcId> |
+ <cidrBlock>10.0.1.0/24</cidrBlock> |
+ <availableIpAddressCount>251</availableIpAddressCount> |
+ <availabilityZone>us-east-1a</availabilityZone> |
+ <defaultForAz>false</defaultForAz> |
+ <mapPublicIpOnLaunch>false</mapPublicIpOnLaunch> |
+ <tagSet/> |
+ </item> |
+ <item> |
+ <subnetId>subnet-6e7f829e</subnetId> |
+ <state>available</state> |
+ <vpcId>vpc-1a2b3c4d</vpcId> |
+ <cidrBlock>10.0.0.0/24</cidrBlock> |
+ <availableIpAddressCount>251</availableIpAddressCount> |
+ <availabilityZone>us-east-1a</availabilityZone> |
+ <defaultForAz>false</defaultForAz> |
+ <mapPublicIpOnLaunch>false</mapPublicIpOnLaunch> |
+ <tagSet/> |
+ </item> |
+ </subnetSet> |
+ </DescribeSubnetsResponse> |
+ """ |
+ |
+ def test_get_all_subnets(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.get_all_subnets( |
+ ['subnet-9d4a7b6c', 'subnet-6e7f829e'], |
+ filters=OrderedDict([('state', 'available'), |
+ ('vpc-id', ['subnet-9d4a7b6c', 'subnet-6e7f829e'])])) |
+ self.assert_request_parameters({ |
+ 'Action': 'DescribeSubnets', |
+ 'SubnetId.1': 'subnet-9d4a7b6c', |
+ 'SubnetId.2': 'subnet-6e7f829e', |
+ 'Filter.1.Name': 'state', |
+ 'Filter.1.Value.1': 'available', |
+ 'Filter.2.Name': 'vpc-id', |
+ 'Filter.2.Value.1': 'subnet-9d4a7b6c', |
+ 'Filter.2.Value.2': 'subnet-6e7f829e'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(len(api_response), 2) |
+ self.assertIsInstance(api_response[0], Subnet) |
+ self.assertEqual(api_response[0].id, 'subnet-9d4a7b6c') |
+ self.assertEqual(api_response[1].id, 'subnet-6e7f829e') |
+ |
+ |
+class TestCreateSubnet(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <CreateSubnetResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId> |
+ <subnet> |
+ <subnetId>subnet-9d4a7b6c</subnetId> |
+ <state>pending</state> |
+ <vpcId>vpc-1a2b3c4d</vpcId> |
+ <cidrBlock>10.0.1.0/24</cidrBlock> |
+ <availableIpAddressCount>251</availableIpAddressCount> |
+ <availabilityZone>us-east-1a</availabilityZone> |
+ <tagSet/> |
+ </subnet> |
+ </CreateSubnetResponse> |
+ """ |
+ |
+ def test_create_subnet(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.create_subnet( |
+ 'vpc-1a2b3c4d', '10.0.1.0/24', 'us-east-1a') |
+ self.assert_request_parameters({ |
+ 'Action': 'CreateSubnet', |
+ 'VpcId': 'vpc-1a2b3c4d', |
+ 'CidrBlock': '10.0.1.0/24', |
+ 'AvailabilityZone': 'us-east-1a'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertIsInstance(api_response, Subnet) |
+ self.assertEquals(api_response.id, 'subnet-9d4a7b6c') |
+ self.assertEquals(api_response.state, 'pending') |
+ self.assertEquals(api_response.vpc_id, 'vpc-1a2b3c4d') |
+ self.assertEquals(api_response.cidr_block, '10.0.1.0/24') |
+ self.assertEquals(api_response.available_ip_address_count, 251) |
+ self.assertEquals(api_response.availability_zone, 'us-east-1a') |
+ |
+ |
+class TestDeleteSubnet(AWSMockServiceTestCase): |
+ |
+ connection_class = VPCConnection |
+ |
+ def default_body(self): |
+ return b""" |
+ <DeleteSubnetResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/"> |
+ <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId> |
+ <return>true</return> |
+ </DeleteSubnetResponse> |
+ """ |
+ |
+ def test_delete_subnet(self): |
+ self.set_http_response(status_code=200) |
+ api_response = self.service_connection.delete_subnet('subnet-9d4a7b6c') |
+ self.assert_request_parameters({ |
+ 'Action': 'DeleteSubnet', |
+ 'SubnetId': 'subnet-9d4a7b6c'}, |
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod', |
+ 'SignatureVersion', 'Timestamp', |
+ 'Version']) |
+ self.assertEquals(api_response, True) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |