| Index: third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc.py
|
| diff --git a/third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc.py b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f8adaf8aa652342a63e72ed2542fe0ee9e8f6fe1
|
| --- /dev/null
|
| +++ b/third_party/gsutil/third_party/boto/tests/unit/vpc/test_vpc.py
|
| @@ -0,0 +1,367 @@
|
| +# -*- coding: UTF-8 -*-
|
| +from tests.unit import unittest
|
| +from tests.unit import AWSMockServiceTestCase
|
| +
|
| +from boto.vpc import VPCConnection, VPC
|
| +from boto.ec2.securitygroup import SecurityGroup
|
| +
|
| +
|
| +DESCRIBE_VPCS = b'''<?xml version="1.0" encoding="UTF-8"?>
|
| +<DescribeVpcsResponse xmlns="http://ec2.amazonaws.com/doc/2013-02-01/">
|
| + <requestId>623040d1-b51c-40bc-8080-93486f38d03d</requestId>
|
| + <vpcSet>
|
| + <item>
|
| + <vpcId>vpc-12345678</vpcId>
|
| + <state>available</state>
|
| + <cidrBlock>172.16.0.0/16</cidrBlock>
|
| + <dhcpOptionsId>dopt-12345678</dhcpOptionsId>
|
| + <instanceTenancy>default</instanceTenancy>
|
| + <isDefault>false</isDefault>
|
| + </item>
|
| + </vpcSet>
|
| +</DescribeVpcsResponse>'''
|
| +
|
| +
|
| +class TestDescribeVPCs(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return DESCRIBE_VPCS
|
| +
|
| + def test_get_vpcs(self):
|
| + self.set_http_response(status_code=200)
|
| +
|
| + api_response = self.service_connection.get_all_vpcs()
|
| + self.assertEqual(len(api_response), 1)
|
| +
|
| + vpc = api_response[0]
|
| + self.assertFalse(vpc.is_default)
|
| + self.assertEqual(vpc.instance_tenancy, 'default')
|
| +
|
| +
|
| +class TestCreateVpc(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <CreateVpcResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <vpc>
|
| + <vpcId>vpc-1a2b3c4d</vpcId>
|
| + <state>pending</state>
|
| + <cidrBlock>10.0.0.0/16</cidrBlock>
|
| + <dhcpOptionsId>dopt-1a2b3c4d2</dhcpOptionsId>
|
| + <instanceTenancy>default</instanceTenancy>
|
| + <tagSet/>
|
| + </vpc>
|
| + </CreateVpcResponse>
|
| + """
|
| +
|
| + def test_create_vpc(self):
|
| + self.set_http_response(status_code=200)
|
| + api_response = self.service_connection.create_vpc('10.0.0.0/16', 'default')
|
| + self.assert_request_parameters({
|
| + 'Action': 'CreateVpc',
|
| + 'InstanceTenancy': 'default',
|
| + 'CidrBlock': '10.0.0.0/16'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertIsInstance(api_response, VPC)
|
| + self.assertEquals(api_response.id, 'vpc-1a2b3c4d')
|
| + self.assertEquals(api_response.state, 'pending')
|
| + self.assertEquals(api_response.cidr_block, '10.0.0.0/16')
|
| + self.assertEquals(api_response.dhcp_options_id, 'dopt-1a2b3c4d2')
|
| + self.assertEquals(api_response.instance_tenancy, 'default')
|
| +
|
| +
|
| +class TestDeleteVpc(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <DeleteVpcResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <return>true</return>
|
| + </DeleteVpcResponse>
|
| + """
|
| +
|
| + def test_delete_vpc(self):
|
| + self.set_http_response(status_code=200)
|
| + api_response = self.service_connection.delete_vpc('vpc-1a2b3c4d')
|
| + self.assert_request_parameters({
|
| + 'Action': 'DeleteVpc',
|
| + 'VpcId': 'vpc-1a2b3c4d'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEquals(api_response, True)
|
| +
|
| +
|
| +class TestModifyVpcAttribute(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <ModifyVpcAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
| + <return>true</return>
|
| + </ModifyVpcAttributeResponse>
|
| + """
|
| +
|
| + def test_modify_vpc_attribute_dns_support(self):
|
| + self.set_http_response(status_code=200)
|
| + api_response = self.service_connection.modify_vpc_attribute(
|
| + 'vpc-1a2b3c4d', enable_dns_support=True)
|
| + self.assert_request_parameters({
|
| + 'Action': 'ModifyVpcAttribute',
|
| + 'VpcId': 'vpc-1a2b3c4d',
|
| + 'EnableDnsSupport.Value': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEquals(api_response, True)
|
| +
|
| + def test_modify_vpc_attribute_dns_hostnames(self):
|
| + self.set_http_response(status_code=200)
|
| + api_response = self.service_connection.modify_vpc_attribute(
|
| + 'vpc-1a2b3c4d', enable_dns_hostnames=True)
|
| + self.assert_request_parameters({
|
| + 'Action': 'ModifyVpcAttribute',
|
| + 'VpcId': 'vpc-1a2b3c4d',
|
| + 'EnableDnsHostnames.Value': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEquals(api_response, True)
|
| +
|
| +
|
| +class TestGetAllClassicLinkVpc(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <DescribeVpcClassicLinkResponse xmlns="http://ec2.amazonaws.com/doc/2014-09-01/">
|
| + <requestId>2484655d-d669-4950-bf55-7ba559805d36</requestId>
|
| + <vpcSet>
|
| + <item>
|
| + <vpcId>vpc-6226ab07</vpcId>
|
| + <classicLinkEnabled>false</classicLinkEnabled>
|
| + <tagSet>
|
| + <item>
|
| + <key>Name</key>
|
| + <value>hello</value>[
|
| + </item>
|
| + </tagSet>
|
| + </item>
|
| + <item>
|
| + <vpcId>vpc-9d24f8f8</vpcId>
|
| + <classicLinkEnabled>true</classicLinkEnabled>
|
| + <tagSet/>
|
| + </item>
|
| + </vpcSet>
|
| + </DescribeVpcClassicLinkResponse>
|
| + """
|
| +
|
| + def test_get_all_classic_link_vpcs(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.get_all_classic_link_vpcs()
|
| + self.assertEqual(len(response), 2)
|
| + vpc = response[0]
|
| + self.assertEqual(vpc.id, 'vpc-6226ab07')
|
| + self.assertEqual(vpc.classic_link_enabled, 'false')
|
| + self.assertEqual(vpc.tags, {'Name': 'hello'})
|
| +
|
| + def test_get_all_classic_link_vpcs_params(self):
|
| + self.set_http_response(status_code=200)
|
| + self.service_connection.get_all_classic_link_vpcs(
|
| + vpc_ids=['id1', 'id2'],
|
| + filters={'GroupId': 'sg-9b4343fe'},
|
| + dry_run=True,
|
| + )
|
| + self.assert_request_parameters({
|
| + 'Action': 'DescribeVpcClassicLink',
|
| + 'VpcId.1': 'id1',
|
| + 'VpcId.2': 'id2',
|
| + 'Filter.1.Name': 'GroupId',
|
| + 'Filter.1.Value.1': 'sg-9b4343fe',
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| +
|
| +
|
| +class TestVpcClassicLink(AWSMockServiceTestCase):
|
| + connection_class = VPCConnection
|
| +
|
| + def setUp(self):
|
| + super(TestVpcClassicLink, self).setUp()
|
| + self.vpc = VPC(self.service_connection)
|
| + self.vpc_id = 'myid'
|
| + self.vpc.id = self.vpc_id
|
| +
|
| +
|
| +class TestAttachClassicLinkVpc(TestVpcClassicLink):
|
| + def default_body(self):
|
| + return b"""
|
| + <AttachClassicLinkVpcResponse xmlns="http://ec2.amazonaws.com/doc/2014-09-01/">
|
| + <requestId>88673bdf-cd16-40bf-87a1-6132fec47257</requestId>
|
| + <return>true</return>
|
| + </AttachClassicLinkVpcResponse>
|
| + """
|
| +
|
| + def test_attach_classic_link_instance_string_groups(self):
|
| + groups = ['sg-foo', 'sg-bar']
|
| +
|
| + self.set_http_response(status_code=200)
|
| + response = self.vpc.attach_classic_instance(
|
| + instance_id='my_instance_id',
|
| + groups=groups,
|
| + dry_run=True
|
| + )
|
| + self.assertTrue(response)
|
| + self.assert_request_parameters({
|
| + 'Action': 'AttachClassicLinkVpc',
|
| + 'VpcId': self.vpc_id,
|
| + 'InstanceId': 'my_instance_id',
|
| + 'SecurityGroupId.1': 'sg-foo',
|
| + 'SecurityGroupId.2': 'sg-bar',
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| +
|
| + def test_attach_classic_link_instance_object_groups(self):
|
| + sec_group_1 = SecurityGroup()
|
| + sec_group_1.id = 'sg-foo'
|
| +
|
| + sec_group_2 = SecurityGroup()
|
| + sec_group_2.id = 'sg-bar'
|
| +
|
| + groups = [sec_group_1, sec_group_2]
|
| +
|
| + self.set_http_response(status_code=200)
|
| + response = self.vpc.attach_classic_instance(
|
| + instance_id='my_instance_id',
|
| + groups=groups,
|
| + dry_run=True
|
| + )
|
| + self.assertTrue(response)
|
| + self.assert_request_parameters({
|
| + 'Action': 'AttachClassicLinkVpc',
|
| + 'VpcId': self.vpc_id,
|
| + 'InstanceId': 'my_instance_id',
|
| + 'SecurityGroupId.1': 'sg-foo',
|
| + 'SecurityGroupId.2': 'sg-bar',
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| +
|
| +
|
| +class TestDetachClassicLinkVpc(TestVpcClassicLink):
|
| + def default_body(self):
|
| + return b"""
|
| + <DetachClassicLinkVpcResponse xmlns="http://ec2.amazonaws.com/doc/2014-09-01/">
|
| + <requestId>5565033d-1321-4eef-b121-6aa46f152ed7</requestId>
|
| + <return>true</return>
|
| + </DetachClassicLinkVpcResponse>
|
| + """
|
| +
|
| + def test_detach_classic_link_instance(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.vpc.detach_classic_instance(
|
| + instance_id='my_instance_id',
|
| + dry_run=True
|
| + )
|
| + self.assertTrue(response)
|
| + self.assert_request_parameters({
|
| + 'Action': 'DetachClassicLinkVpc',
|
| + 'VpcId': self.vpc_id,
|
| + 'InstanceId': 'my_instance_id',
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| +
|
| +
|
| +class TestEnableClassicLinkVpc(TestVpcClassicLink):
|
| + def default_body(self):
|
| + return b"""
|
| + <EnableVpcClassicLinkResponse xmlns="http://ec2.amazonaws.com/doc/2014-09-01/">
|
| + <requestId>4ab2b2b3-a267-4366-a070-bab853b5927d</requestId>
|
| + <return>true</return>
|
| + </EnableVpcClassicLinkResponse>
|
| + """
|
| +
|
| + def test_enable_classic_link(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.vpc.enable_classic_link(
|
| + dry_run=True
|
| + )
|
| + self.assertTrue(response)
|
| + self.assert_request_parameters({
|
| + 'Action': 'EnableVpcClassicLink',
|
| + 'VpcId': self.vpc_id,
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| +
|
| +
|
| +class TestDisableClassicLinkVpc(TestVpcClassicLink):
|
| + def default_body(self):
|
| + return b"""
|
| + <DisableVpcClassicLinkResponse xmlns="http://ec2.amazonaws.com/doc/2014-09-01/">
|
| + <requestId>4ab2b2b3-a267-4366-a070-bab853b5927d</requestId>
|
| + <return>true</return>
|
| + </DisableVpcClassicLinkResponse>
|
| + """
|
| +
|
| + def test_enable_classic_link(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.vpc.disable_classic_link(
|
| + dry_run=True
|
| + )
|
| + self.assertTrue(response)
|
| + self.assert_request_parameters({
|
| + 'Action': 'DisableVpcClassicLink',
|
| + 'VpcId': self.vpc_id,
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| +
|
| +
|
| +class TestUpdateClassicLinkVpc(TestVpcClassicLink):
|
| + def default_body(self):
|
| + return b"""
|
| + <DescribeVpcClassicLinkResponse xmlns="http://ec2.amazonaws.com/doc/2014-09-01/">
|
| + <requestId>2484655d-d669-4950-bf55-7ba559805d36</requestId>
|
| + <vpcSet>
|
| + <item>
|
| + <vpcId>myid</vpcId>
|
| + <classicLinkEnabled>true</classicLinkEnabled>
|
| + <tagSet/>
|
| + </item>
|
| + </vpcSet>
|
| + </DescribeVpcClassicLinkResponse>
|
| + """
|
| +
|
| + def test_vpc_update_classic_link_enabled(self):
|
| + self.vpc.classic_link_enabled = False
|
| + self.set_http_response(status_code=200)
|
| + self.vpc.update_classic_link_enabled(
|
| + dry_run=True,
|
| + validate=True
|
| + )
|
| + self.assert_request_parameters({
|
| + 'Action': 'DescribeVpcClassicLink',
|
| + 'VpcId.1': self.vpc_id,
|
| + 'DryRun': 'true'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp', 'Version'])
|
| + self.assertEqual(self.vpc.classic_link_enabled, 'true')
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|