| Index: third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_loadbalancer.py
|
| diff --git a/third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_loadbalancer.py b/third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_loadbalancer.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..a042df4863d8bf003912edd74c410ce464aaafe3
|
| --- /dev/null
|
| +++ b/third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_loadbalancer.py
|
| @@ -0,0 +1,143 @@
|
| +#!/usr/bin/env python
|
| +
|
| +from tests.unit import unittest
|
| +from tests.compat import mock
|
| +
|
| +from boto.ec2.elb import ELBConnection
|
| +from boto.ec2.elb import LoadBalancer
|
| +
|
| +DISABLE_RESPONSE = b"""<?xml version="1.0" encoding="UTF-8"?>
|
| +<DisableAvailabilityZonesForLoadBalancerResult xmlns="http://ec2.amazonaws.com/doc/2013-02-01/">
|
| + <requestId>3be1508e-c444-4fef-89cc-0b1223c4f02fEXAMPLE</requestId>
|
| + <AvailabilityZones>
|
| + <member>sample-zone</member>
|
| + </AvailabilityZones>
|
| +</DisableAvailabilityZonesForLoadBalancerResult>
|
| +"""
|
| +
|
| +
|
| +class TestInstanceStatusResponseParsing(unittest.TestCase):
|
| + def test_next_token(self):
|
| + elb = ELBConnection(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 = DISABLE_RESPONSE
|
| + mock_response.status = 200
|
| + elb.make_request = mock.Mock(return_value=mock_response)
|
| + disabled = elb.disable_availability_zones('mine', ['sample-zone'])
|
| + self.assertEqual(disabled, ['sample-zone'])
|
| +
|
| +
|
| +DESCRIBE_RESPONSE = b"""<?xml version="1.0" encoding="UTF-8"?>
|
| +<DescribeLoadBalancersResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
| + <DescribeLoadBalancersResult>
|
| + <LoadBalancerDescriptions>
|
| + <member>
|
| + <SecurityGroups/>
|
| + <CreatedTime>2013-07-09T19:18:00.520Z</CreatedTime>
|
| + <LoadBalancerName>elb-boto-unit-test</LoadBalancerName>
|
| + <HealthCheck/>
|
| + <ListenerDescriptions>
|
| + <member>
|
| + <PolicyNames/>
|
| + <Listener/>
|
| + </member>
|
| + </ListenerDescriptions>
|
| + <Instances/>
|
| + <Policies>
|
| + <AppCookieStickinessPolicies/>
|
| + <OtherPolicies>
|
| + <member>AWSConsole-SSLNegotiationPolicy-my-test-loadbalancer</member>
|
| + <member>EnableProxyProtocol</member>
|
| + </OtherPolicies>
|
| + <LBCookieStickinessPolicies/>
|
| + </Policies>
|
| + <AvailabilityZones>
|
| + <member>us-east-1a</member>
|
| + </AvailabilityZones>
|
| + <CanonicalHostedZoneName>elb-boto-unit-test-408121642.us-east-1.elb.amazonaws.com</CanonicalHostedZoneName>
|
| + <CanonicalHostedZoneNameID>Z3DZXE0Q79N41H</CanonicalHostedZoneNameID>
|
| + <Scheme>internet-facing</Scheme>
|
| + <SourceSecurityGroup>
|
| + <OwnerAlias>amazon-elb</OwnerAlias>
|
| + <GroupName>amazon-elb-sg</GroupName>
|
| + </SourceSecurityGroup>
|
| + <DNSName>elb-boto-unit-test-408121642.us-east-1.elb.amazonaws.com</DNSName>
|
| + <BackendServerDescriptions>
|
| + <member>
|
| + <PolicyNames>
|
| + <member>EnableProxyProtocol</member>
|
| + </PolicyNames>
|
| + <InstancePort>80</InstancePort>
|
| + </member>
|
| + </BackendServerDescriptions>
|
| + <Subnets/>
|
| + </member>
|
| + </LoadBalancerDescriptions>
|
| + <Marker>1234</Marker>
|
| + </DescribeLoadBalancersResult>
|
| + <ResponseMetadata>
|
| + <RequestId>5763d932-e8cc-11e2-a940-11136cceffb8</RequestId>
|
| + </ResponseMetadata>
|
| +</DescribeLoadBalancersResponse>
|
| +"""
|
| +
|
| +
|
| +class TestDescribeLoadBalancers(unittest.TestCase):
|
| + def test_other_policy(self):
|
| + elb = ELBConnection(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 = DESCRIBE_RESPONSE
|
| + mock_response.status = 200
|
| + elb.make_request = mock.Mock(return_value=mock_response)
|
| + load_balancers = elb.get_all_load_balancers()
|
| + self.assertEqual(len(load_balancers), 1)
|
| +
|
| + lb = load_balancers[0]
|
| + self.assertEqual(len(lb.policies.other_policies), 2)
|
| + self.assertEqual(lb.policies.other_policies[0].policy_name,
|
| + 'AWSConsole-SSLNegotiationPolicy-my-test-loadbalancer')
|
| + self.assertEqual(lb.policies.other_policies[1].policy_name,
|
| + 'EnableProxyProtocol')
|
| +
|
| + self.assertEqual(len(lb.backends), 1)
|
| + self.assertEqual(len(lb.backends[0].policies), 1)
|
| + self.assertEqual(lb.backends[0].policies[0].policy_name,
|
| + 'EnableProxyProtocol')
|
| + self.assertEqual(lb.backends[0].instance_port, 80)
|
| +
|
| + def test_request_with_marker(self):
|
| + elb = ELBConnection(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 = DESCRIBE_RESPONSE
|
| + mock_response.status = 200
|
| + elb.make_request = mock.Mock(return_value=mock_response)
|
| + load_balancers1 = elb.get_all_load_balancers()
|
| + self.assertEqual('1234', load_balancers1.marker)
|
| + load_balancers2 = elb.get_all_load_balancers(marker=load_balancers1.marker)
|
| + self.assertEqual(len(load_balancers2), 1)
|
| +
|
| +
|
| +DETACH_RESPONSE = r"""<?xml version="1.0" encoding="UTF-8"?>
|
| +<DetachLoadBalancerFromSubnets xmlns="http://ec2.amazonaws.com/doc/2013-02-01/">
|
| + <requestId>3be1508e-c444-4fef-89cc-0b1223c4f02fEXAMPLE</requestId>
|
| +</DetachLoadBalancerFromSubnets>
|
| +"""
|
| +
|
| +
|
| +class TestDetachSubnets(unittest.TestCase):
|
| + def test_detach_subnets(self):
|
| + elb = ELBConnection(aws_access_key_id='aws_access_key_id',
|
| + aws_secret_access_key='aws_secret_access_key')
|
| + lb = LoadBalancer(elb, "mylb")
|
| +
|
| + mock_response = mock.Mock()
|
| + mock_response.read.return_value = DETACH_RESPONSE
|
| + mock_response.status = 200
|
| + elb.make_request = mock.Mock(return_value=mock_response)
|
| + lb.detach_subnets("s-xxx")
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|