Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Unified Diff: third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_loadbalancer.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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()

Powered by Google App Engine
This is Rietveld 408576698