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

Unified Diff: third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_listener.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_listener.py
diff --git a/third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_listener.py b/third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_listener.py
new file mode 100755
index 0000000000000000000000000000000000000000..a9d29c5b95a82dccb51252f7f4d0fd1d40993b0b
--- /dev/null
+++ b/third_party/gsutil/third_party/boto/tests/unit/ec2/elb/test_listener.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+import xml.sax
+from tests.unit import unittest
+
+import boto.resultset
+from boto.ec2.elb.loadbalancer import LoadBalancer
+from boto.ec2.elb.listener import Listener
+
+
+LISTENERS_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>
+ <Interval>30</Interval>
+ <Target>TCP:8000</Target>
+ <HealthyThreshold>10</HealthyThreshold>
+ <Timeout>5</Timeout>
+ <UnhealthyThreshold>2</UnhealthyThreshold>
+ </HealthCheck>
+ <ListenerDescriptions>
+ <member>
+ <PolicyNames/>
+ <Listener>
+ <Protocol>HTTP</Protocol>
+ <LoadBalancerPort>80</LoadBalancerPort>
+ <InstanceProtocol>HTTP</InstanceProtocol>
+ <InstancePort>8000</InstancePort>
+ </Listener>
+ </member>
+ <member>
+ <PolicyNames/>
+ <Listener>
+ <Protocol>HTTP</Protocol>
+ <LoadBalancerPort>8080</LoadBalancerPort>
+ <InstanceProtocol>HTTP</InstanceProtocol>
+ <InstancePort>80</InstancePort>
+ </Listener>
+ </member>
+ <member>
+ <PolicyNames/>
+ <Listener>
+ <Protocol>TCP</Protocol>
+ <LoadBalancerPort>2525</LoadBalancerPort>
+ <InstanceProtocol>TCP</InstanceProtocol>
+ <InstancePort>25</InstancePort>
+ </Listener>
+ </member>
+ </ListenerDescriptions>
+ <Instances/>
+ <Policies>
+ <AppCookieStickinessPolicies/>
+ <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/>
+ <Subnets/>
+ </member>
+ </LoadBalancerDescriptions>
+ </DescribeLoadBalancersResult>
+ <ResponseMetadata>
+ <RequestId>5763d932-e8cc-11e2-a940-11136cceffb8</RequestId>
+ </ResponseMetadata>
+</DescribeLoadBalancersResponse>
+"""
+
+
+class TestListenerResponseParsing(unittest.TestCase):
+ def test_parse_complex(self):
+ rs = boto.resultset.ResultSet([
+ ('member', LoadBalancer)
+ ])
+ h = boto.handler.XmlHandler(rs, None)
+ xml.sax.parseString(LISTENERS_RESPONSE, h)
+ listeners = rs[0].listeners
+ self.assertEqual(
+ sorted([l.get_complex_tuple() for l in listeners]),
+ [
+ (80, 8000, 'HTTP', 'HTTP'),
+ (2525, 25, 'TCP', 'TCP'),
+ (8080, 80, 'HTTP', 'HTTP'),
+ ]
+ )
+
+class TestListenerGetItem(unittest.TestCase):
+ def test_getitem_for_http_listener(self):
+ listener = Listener(load_balancer_port=80,
+ instance_port=80,
+ protocol='HTTP',
+ instance_protocol='HTTP')
+ self.assertEqual(listener[0], 80)
+ self.assertEqual(listener[1], 80)
+ self.assertEqual(listener[2], 'HTTP')
+ self.assertEqual(listener[3], 'HTTP')
+
+ def test_getitem_for_https_listener(self):
+ listener = Listener(load_balancer_port=443,
+ instance_port=80,
+ protocol='HTTPS',
+ instance_protocol='HTTP',
+ ssl_certificate_id='look_at_me_im_an_arn')
+ self.assertEqual(listener[0], 443)
+ self.assertEqual(listener[1], 80)
+ self.assertEqual(listener[2], 'HTTPS')
+ self.assertEqual(listener[3], 'HTTP')
+ self.assertEqual(listener[4], 'look_at_me_im_an_arn')
+
+
+if __name__ == '__main__':
+ unittest.main()

Powered by Google App Engine
This is Rietveld 408576698