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

Unified Diff: tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/route53/test_connection.py

Issue 1260493004: Revert "Add gsutil 4.13 to telemetry/third_party" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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: tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/route53/test_connection.py
diff --git a/tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/route53/test_connection.py b/tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/route53/test_connection.py
deleted file mode 100644
index d1a8015256f5e5133e2f92a2a73627a2b6b84565..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/gsutil/third_party/boto/tests/unit/route53/test_connection.py
+++ /dev/null
@@ -1,802 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-from tests.compat import mock
-import re
-import xml.dom.minidom
-from boto.exception import BotoServerError
-from boto.route53.connection import Route53Connection
-from boto.route53.exception import DNSServerError
-from boto.route53.healthcheck import HealthCheck
-from boto.route53.record import ResourceRecordSets, Record
-from boto.route53.zone import Zone
-
-from nose.plugins.attrib import attr
-from tests.unit import AWSMockServiceTestCase
-from boto.compat import six
-urllib = six.moves.urllib
-
-
-@attr(route53=True)
-class TestRoute53Connection(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestRoute53Connection, self).setUp()
- self.calls = {
- 'count': 0,
- }
-
- def default_body(self):
- return b"""<Route53Result>
- <Message>It failed.</Message>
-</Route53Result>
-"""
-
- def test_typical_400(self):
- self.set_http_response(status_code=400, header=[
- ['Code', 'AccessDenied'],
- ])
-
- with self.assertRaises(DNSServerError) as err:
- self.service_connection.get_all_hosted_zones()
-
- self.assertTrue('It failed.' in str(err.exception))
-
- def test_retryable_400_prior_request_not_complete(self):
- # Test ability to retry on ``PriorRequestNotComplete``.
- self.set_http_response(status_code=400, header=[
- ['Code', 'PriorRequestNotComplete'],
- ])
- self.do_retry_handler()
-
- def test_retryable_400_throttling(self):
- # Test ability to rety on ``Throttling``.
- self.set_http_response(status_code=400, header=[
- ['Code', 'Throttling'],
- ])
- self.do_retry_handler()
-
- @mock.patch('time.sleep')
- def do_retry_handler(self, sleep_mock):
-
- def incr_retry_handler(func):
- def _wrapper(*args, **kwargs):
- self.calls['count'] += 1
- return func(*args, **kwargs)
- return _wrapper
-
- # Patch.
- orig_retry = self.service_connection._retry_handler
- self.service_connection._retry_handler = incr_retry_handler(
- orig_retry
- )
- self.assertEqual(self.calls['count'], 0)
-
- # Retries get exhausted.
- with self.assertRaises(BotoServerError):
- self.service_connection.get_all_hosted_zones()
-
- self.assertEqual(self.calls['count'], 7)
-
- # Unpatch.
- self.service_connection._retry_handler = orig_retry
-
- def test_private_zone_invalid_vpc_400(self):
- self.set_http_response(status_code=400, header=[
- ['Code', 'InvalidVPCId'],
- ])
-
- with self.assertRaises(DNSServerError) as err:
- self.service_connection.create_hosted_zone("example.com.",
- private_zone=True)
- self.assertTrue('It failed.' in str(err.exception))
-
-
-@attr(route53=True)
-class TestCreateZoneRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestCreateZoneRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<CreateHostedZoneResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">
- <HostedZone>
- <Id>/hostedzone/Z11111</Id>
- <Name>example.com.</Name>
- <CallerReference>aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee</CallerReference>
- <Config>
- <Comment></Comment>
- <PrivateZone>false</PrivateZone>
- </Config>
- <ResourceRecordSetCount>2</ResourceRecordSetCount>
- </HostedZone>
- <ChangeInfo>
- <Id>/change/C1111111111111</Id>
- <Status>PENDING</Status>
- <SubmittedAt>2014-02-02T10:19:29.928Z</SubmittedAt>
- </ChangeInfo>
- <DelegationSet>
- <NameServers>
- <NameServer>ns-100.awsdns-01.com</NameServer>
- <NameServer>ns-1000.awsdns-01.co.uk</NameServer>
- <NameServer>ns-1000.awsdns-01.org</NameServer>
- <NameServer>ns-900.awsdns-01.net</NameServer>
- </NameServers>
- </DelegationSet>
-</CreateHostedZoneResponse>
- """
-
- def test_create_zone(self):
- self.set_http_response(status_code=201)
- response = self.service_connection.create_zone("example.com.")
-
- self.assertTrue(isinstance(response, Zone))
- self.assertEqual(response.id, "Z11111")
- self.assertEqual(response.name, "example.com.")
-
- def test_create_hosted_zone(self):
- self.set_http_response(status_code=201)
- response = self.service_connection.create_hosted_zone("example.com.",
- "my_ref",
- "a comment")
-
- self.assertEqual(response['CreateHostedZoneResponse']
- ['DelegationSet']['NameServers'],
- ['ns-100.awsdns-01.com',
- 'ns-1000.awsdns-01.co.uk',
- 'ns-1000.awsdns-01.org',
- 'ns-900.awsdns-01.net'])
-
- self.assertEqual(response['CreateHostedZoneResponse']
- ['HostedZone']['Config']['PrivateZone'],
- u'false')
-
-
-@attr(route53=True)
-class TestCreatePrivateZoneRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestCreatePrivateZoneRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<CreateHostedZoneResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">
- <HostedZone>
- <Id>/hostedzone/Z11111</Id>
- <Name>example.com.</Name>
- <VPC>
- <VPCId>vpc-1a2b3c4d</VPCId>
- <VPCRegion>us-east-1</VPCRegion>
- </VPC>
- <CallerReference>aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee</CallerReference>
- <Config>
- <Comment></Comment>
- <PrivateZone>true</PrivateZone>
- </Config>
- <ResourceRecordSetCount>2</ResourceRecordSetCount>
- </HostedZone>
- <ChangeInfo>
- <Id>/change/C1111111111111</Id>
- <Status>PENDING</Status>
- <SubmittedAt>2014-02-02T10:19:29.928Z</SubmittedAt>
- </ChangeInfo>
- <DelegationSet>
- <NameServers>
- <NameServer>ns-100.awsdns-01.com</NameServer>
- <NameServer>ns-1000.awsdns-01.co.uk</NameServer>
- <NameServer>ns-1000.awsdns-01.org</NameServer>
- <NameServer>ns-900.awsdns-01.net</NameServer>
- </NameServers>
- </DelegationSet>
-</CreateHostedZoneResponse>
- """
-
- def test_create_private_zone(self):
- self.set_http_response(status_code=201)
- r = self.service_connection.create_hosted_zone("example.com.",
- private_zone=True,
- vpc_id='vpc-1a2b3c4d',
- vpc_region='us-east-1'
- )
-
- self.assertEqual(r['CreateHostedZoneResponse']['HostedZone']
- ['Config']['PrivateZone'], u'true')
- self.assertEqual(r['CreateHostedZoneResponse']['HostedZone']
- ['VPC']['VPCId'], u'vpc-1a2b3c4d')
- self.assertEqual(r['CreateHostedZoneResponse']['HostedZone']
- ['VPC']['VPCRegion'], u'us-east-1')
-
-
-@attr(route53=True)
-class TestGetZoneRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestGetZoneRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<ListHostedZonesResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">
- <HostedZones>
- <HostedZone>
- <Id>/hostedzone/Z1111</Id>
- <Name>example2.com.</Name>
- <CallerReference>aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee</CallerReference>
- <Config/>
- <ResourceRecordSetCount>3</ResourceRecordSetCount>
- </HostedZone>
- <HostedZone>
- <Id>/hostedzone/Z2222</Id>
- <Name>example1.com.</Name>
- <CallerReference>aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeef</CallerReference>
- <Config/>
- <ResourceRecordSetCount>6</ResourceRecordSetCount>
- </HostedZone>
- <HostedZone>
- <Id>/hostedzone/Z3333</Id>
- <Name>example.com.</Name>
- <CallerReference>aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeg</CallerReference>
- <Config/>
- <ResourceRecordSetCount>6</ResourceRecordSetCount>
- </HostedZone>
- </HostedZones>
- <IsTruncated>false</IsTruncated>
- <MaxItems>100</MaxItems>
-</ListHostedZonesResponse>
- """
-
- def test_list_zones(self):
- self.set_http_response(status_code=201)
- response = self.service_connection.get_all_hosted_zones()
-
- domains = ['example2.com.', 'example1.com.', 'example.com.']
- print(response['ListHostedZonesResponse']['HostedZones'][0])
- for d in response['ListHostedZonesResponse']['HostedZones']:
- print("Removing: %s" % d['Name'])
- domains.remove(d['Name'])
-
- self.assertEqual(domains, [])
-
- def test_get_zone(self):
- self.set_http_response(status_code=201)
- response = self.service_connection.get_zone('example.com.')
-
- self.assertTrue(isinstance(response, Zone))
- self.assertEqual(response.name, "example.com.")
-
-
-@attr(route53=True)
-class TestGetHostedZoneRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestGetHostedZoneRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<GetHostedZoneResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">
- <HostedZone>
- <Id>/hostedzone/Z1111</Id>
- <Name>example.com.</Name>
- <CallerReference>aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee</CallerReference>
- <Config/>
- <ResourceRecordSetCount>3</ResourceRecordSetCount>
- </HostedZone>
- <DelegationSet>
- <NameServers>
- <NameServer>ns-1000.awsdns-40.org</NameServer>
- <NameServer>ns-200.awsdns-30.com</NameServer>
- <NameServer>ns-900.awsdns-50.net</NameServer>
- <NameServer>ns-1000.awsdns-00.co.uk</NameServer>
- </NameServers>
- </DelegationSet>
-</GetHostedZoneResponse>
-"""
-
- def test_list_zones(self):
- self.set_http_response(status_code=201)
- response = self.service_connection.get_hosted_zone("Z1111")
-
- self.assertEqual(response['GetHostedZoneResponse']
- ['HostedZone']['Id'],
- '/hostedzone/Z1111')
- self.assertEqual(response['GetHostedZoneResponse']
- ['HostedZone']['Name'],
- 'example.com.')
- self.assertEqual(response['GetHostedZoneResponse']
- ['DelegationSet']['NameServers'],
- ['ns-1000.awsdns-40.org', 'ns-200.awsdns-30.com',
- 'ns-900.awsdns-50.net', 'ns-1000.awsdns-00.co.uk'])
-
-
-@attr(route53=True)
-class TestGetAllRRSetsRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestGetAllRRSetsRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<ListResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <ResourceRecordSets>
- <ResourceRecordSet>
- <Name>test.example.com.</Name>
- <Type>A</Type>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>10.0.0.1</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>www.example.com.</Name>
- <Type>A</Type>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>10.0.0.2</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>us-west-2-evaluate-health.example.com.</Name>
- <Type>A</Type>
- <SetIdentifier>latency-example-us-west-2-evaluate-health</SetIdentifier>
- <Region>us-west-2</Region>
- <AliasTarget>
- <HostedZoneId>ABCDEFG123456</HostedZoneId>
- <EvaluateTargetHealth>true</EvaluateTargetHealth>
- <DNSName>example-123456-evaluate-health.us-west-2.elb.amazonaws.com.</DNSName>
- </AliasTarget>
- <HealthCheckId>abcdefgh-abcd-abcd-abcd-abcdefghijkl</HealthCheckId>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>us-west-2-no-evaluate-health.example.com.</Name>
- <Type>A</Type>
- <SetIdentifier>latency-example-us-west-2-no-evaluate-health</SetIdentifier>
- <Region>us-west-2</Region>
- <AliasTarget>
- <HostedZoneId>ABCDEFG567890</HostedZoneId>
- <EvaluateTargetHealth>false</EvaluateTargetHealth>
- <DNSName>example-123456-no-evaluate-health.us-west-2.elb.amazonaws.com.</DNSName>
- </AliasTarget>
- <HealthCheckId>abcdefgh-abcd-abcd-abcd-abcdefghijkl</HealthCheckId>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>failover.example.com.</Name>
- <Type>A</Type>
- <SetIdentifier>failover-primary</SetIdentifier>
- <Failover>PRIMARY</Failover>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>10.0.0.4</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>us-west-2-evaluate-health-healthcheck.example.com.</Name>
- <Type>A</Type>
- <SetIdentifier>latency-example-us-west-2-evaluate-health-healthcheck</SetIdentifier>
- <Region>us-west-2</Region>
- <AliasTarget>
- <HostedZoneId>ABCDEFG123456</HostedZoneId>
- <EvaluateTargetHealth>true</EvaluateTargetHealth>
- <DNSName>example-123456-evaluate-health-healthcheck.us-west-2.elb.amazonaws.com.</DNSName>
- </AliasTarget>
- <HealthCheckId>076a32f8-86f7-4c9e-9fa2-c163d5be67d9</HealthCheckId>
- </ResourceRecordSet>
- </ResourceRecordSets>
- <IsTruncated>false</IsTruncated>
- <MaxItems>100</MaxItems>
-</ListResourceRecordSetsResponse>
- """
-
- def test_get_all_rr_sets(self):
- self.set_http_response(status_code=200)
- response = self.service_connection.get_all_rrsets("Z1111",
- "A",
- "example.com.")
-
- self.assertIn(self.actual_request.path,
- ("/2013-04-01/hostedzone/Z1111/rrset?type=A&name=example.com.",
- "/2013-04-01/hostedzone/Z1111/rrset?name=example.com.&type=A"))
-
- self.assertTrue(isinstance(response, ResourceRecordSets))
- self.assertEqual(response.hosted_zone_id, "Z1111")
- self.assertTrue(isinstance(response[0], Record))
-
- self.assertTrue(response[0].name, "test.example.com.")
- self.assertTrue(response[0].ttl, "60")
- self.assertTrue(response[0].type, "A")
-
- evaluate_record = response[2]
- self.assertEqual(evaluate_record.name, 'us-west-2-evaluate-health.example.com.')
- self.assertEqual(evaluate_record.type, 'A')
- self.assertEqual(evaluate_record.identifier, 'latency-example-us-west-2-evaluate-health')
- self.assertEqual(evaluate_record.region, 'us-west-2')
- self.assertEqual(evaluate_record.alias_hosted_zone_id, 'ABCDEFG123456')
- self.assertTrue(evaluate_record.alias_evaluate_target_health)
- self.assertEqual(evaluate_record.alias_dns_name, 'example-123456-evaluate-health.us-west-2.elb.amazonaws.com.')
- evaluate_xml = evaluate_record.to_xml()
- self.assertTrue(evaluate_record.health_check, 'abcdefgh-abcd-abcd-abcd-abcdefghijkl')
- self.assertTrue('<EvaluateTargetHealth>true</EvaluateTargetHealth>' in evaluate_xml)
-
- no_evaluate_record = response[3]
- self.assertEqual(no_evaluate_record.name, 'us-west-2-no-evaluate-health.example.com.')
- self.assertEqual(no_evaluate_record.type, 'A')
- self.assertEqual(no_evaluate_record.identifier, 'latency-example-us-west-2-no-evaluate-health')
- self.assertEqual(no_evaluate_record.region, 'us-west-2')
- self.assertEqual(no_evaluate_record.alias_hosted_zone_id, 'ABCDEFG567890')
- self.assertFalse(no_evaluate_record.alias_evaluate_target_health)
- self.assertEqual(no_evaluate_record.alias_dns_name, 'example-123456-no-evaluate-health.us-west-2.elb.amazonaws.com.')
- no_evaluate_xml = no_evaluate_record.to_xml()
- self.assertTrue(no_evaluate_record.health_check, 'abcdefgh-abcd-abcd-abcd-abcdefghijkl')
- self.assertTrue('<EvaluateTargetHealth>false</EvaluateTargetHealth>' in no_evaluate_xml)
-
- failover_record = response[4]
- self.assertEqual(failover_record.name, 'failover.example.com.')
- self.assertEqual(failover_record.type, 'A')
- self.assertEqual(failover_record.identifier, 'failover-primary')
- self.assertEqual(failover_record.failover, 'PRIMARY')
- self.assertEqual(failover_record.ttl, '60')
-
- healthcheck_record = response[5]
- self.assertEqual(healthcheck_record.health_check, '076a32f8-86f7-4c9e-9fa2-c163d5be67d9')
- self.assertEqual(healthcheck_record.name, 'us-west-2-evaluate-health-healthcheck.example.com.')
- self.assertEqual(healthcheck_record.identifier, 'latency-example-us-west-2-evaluate-health-healthcheck')
- self.assertEqual(healthcheck_record.alias_dns_name, 'example-123456-evaluate-health-healthcheck.us-west-2.elb.amazonaws.com.')
-
-
-@attr(route53=True)
-class TestTruncatedGetAllRRSetsRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestTruncatedGetAllRRSetsRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<ListResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <ResourceRecordSets>
- <ResourceRecordSet>
- <Name>example.com.</Name>
- <Type>NS</Type>
- <TTL>900</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>ns-91.awsdns-41.co.uk.</Value>
- </ResourceRecord>
- <ResourceRecord>
- <Value>ns-1929.awsdns-93.net.</Value>
- </ResourceRecord>
- <ResourceRecord>
- <Value>ns-12.awsdns-21.org.</Value>
- </ResourceRecord>
- <ResourceRecord>
- <Value>ns-102.awsdns-96.com.</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>example.com.</Name>
- <Type>SOA</Type>
- <TTL>1800</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>ns-1929.awsdns-93.net. hostmaster.awsdns.net. 1 10800 3600 604800 1800</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- <ResourceRecordSet>
- <Name>wrr.example.com.</Name>
- <Type>A</Type>
- <SetIdentifier>primary</SetIdentifier>
- <Weight>100</Weight>
- <TTL>300</TTL>
- <ResourceRecords>
- <ResourceRecord><Value>127.0.0.1</Value></ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- </ResourceRecordSets>
- <IsTruncated>true</IsTruncated>
- <NextRecordName>wrr.example.com.</NextRecordName>
- <NextRecordType>A</NextRecordType>
- <NextRecordIdentifier>secondary</NextRecordIdentifier>
- <MaxItems>3</MaxItems>
-</ListResourceRecordSetsResponse>"""
-
- def paged_body(self):
- return b"""
-<ListResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <ResourceRecordSets>
- <ResourceRecordSet>
- <Name>wrr.example.com.</Name>
- <Type>A</Type>
- <SetIdentifier>secondary</SetIdentifier>
- <Weight>50</Weight>
- <TTL>300</TTL>
- <ResourceRecords>
- <ResourceRecord><Value>127.0.0.2</Value></ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- </ResourceRecordSets>
- <IsTruncated>false</IsTruncated>
- <MaxItems>3</MaxItems>
-</ListResourceRecordSetsResponse>"""
-
-
- def test_get_all_rr_sets(self):
- self.set_http_response(status_code=200)
- response = self.service_connection.get_all_rrsets("Z1111", maxitems=3)
-
- # made first request
- self.assertEqual(self.actual_request.path, '/2013-04-01/hostedzone/Z1111/rrset?maxitems=3')
-
- # anticipate a second request when we page it
- self.set_http_response(status_code=200, body=self.paged_body())
-
- # this should trigger another call to get_all_rrsets
- self.assertEqual(len(list(response)), 4)
-
- url_parts = urllib.parse.urlparse(self.actual_request.path)
- self.assertEqual(url_parts.path, '/2013-04-01/hostedzone/Z1111/rrset')
- self.assertEqual(urllib.parse.parse_qs(url_parts.query),
- dict(type=['A'], name=['wrr.example.com.'], identifier=['secondary']))
-
-
-@attr(route53=True)
-class TestCreateHealthCheckRoute53IpAddress(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestCreateHealthCheckRoute53IpAddress, self).setUp()
-
- def default_body(self):
- return b"""
-<CreateHealthCheckResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <HealthCheck>
- <Id>34778cf8-e31e-4974-bad0-b108bd1623d3</Id>
- <CallerReference>2fa48c8f-76ef-4253-9874-8bcb2b0d7694</CallerReference>
- <HealthCheckConfig>
- <IPAddress>74.125.228.81</IPAddress>
- <Port>443</Port>
- <Type>HTTPS_STR_MATCH</Type>
- <SearchString>OK</SearchString>
- <ResourcePath>/health_check</ResourcePath>
- <RequestInterval>30</RequestInterval>
- <FailureThreshold>3</FailureThreshold>
- </HealthCheckConfig>
- </HealthCheck>
-</CreateHealthCheckResponse>
- """
-
- def test_create_health_check_ip_address(self):
- self.set_http_response(status_code=201)
- hc = HealthCheck(ip_addr='74.125.228.81', port=443, hc_type='HTTPS_STR_MATCH', resource_path='/health_check', string_match='OK')
- hc_xml = hc.to_xml()
- self.assertFalse('<FullyQualifiedDomainName>' in hc_xml)
- self.assertTrue('<IPAddress>' in hc_xml)
-
- response = self.service_connection.create_health_check(hc)
- hc_resp = response['CreateHealthCheckResponse']['HealthCheck']['HealthCheckConfig']
- self.assertEqual(hc_resp['IPAddress'], '74.125.228.81')
- self.assertEqual(hc_resp['ResourcePath'], '/health_check')
- self.assertEqual(hc_resp['Type'], 'HTTPS_STR_MATCH')
- self.assertEqual(hc_resp['Port'], '443')
- self.assertEqual(hc_resp['ResourcePath'], '/health_check')
- self.assertEqual(hc_resp['SearchString'], 'OK')
- self.assertEqual(response['CreateHealthCheckResponse']['HealthCheck']['Id'], '34778cf8-e31e-4974-bad0-b108bd1623d3')
-
-
-@attr(route53=True)
-class TestGetCheckerIpRanges(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def default_body(self):
- return b"""
-<GetCheckerIpRangesResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <CheckerIpRanges>
- <member>54.183.255.128/26</member>
- <member>54.228.16.0/26</member>
- <member>54.232.40.64/26</member>
- <member>177.71.207.128/26</member>
- <member>176.34.159.192/26</member>
- </CheckerIpRanges>
-</GetCheckerIpRangesResponse>
- """
-
- def test_get_checker_ip_ranges(self):
- self.set_http_response(status_code=200)
- response = self.service_connection.get_checker_ip_ranges()
- ip_ranges = response['GetCheckerIpRangesResponse']['CheckerIpRanges']
-
- self.assertEqual(len(ip_ranges), 5)
- self.assertIn('54.183.255.128/26', ip_ranges)
- self.assertIn('54.228.16.0/26', ip_ranges)
- self.assertIn('54.232.40.64/26', ip_ranges)
- self.assertIn('177.71.207.128/26', ip_ranges)
- self.assertIn('176.34.159.192/26', ip_ranges)
-
-
-@attr(route53=True)
-class TestCreateHealthCheckRoute53FQDN(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestCreateHealthCheckRoute53FQDN, self).setUp()
-
- def default_body(self):
- return b"""
-<CreateHealthCheckResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <HealthCheck>
- <Id>f9abfe10-8d2a-4bbd-8f35-796f0f8572f2</Id>
- <CallerReference>3246ac17-b651-4295-a5c8-c132a59693d7</CallerReference>
- <HealthCheckConfig>
- <Port>443</Port>
- <Type>HTTPS</Type>
- <ResourcePath>/health_check</ResourcePath>
- <FullyQualifiedDomainName>example.com</FullyQualifiedDomainName>
- <RequestInterval>30</RequestInterval>
- <FailureThreshold>3</FailureThreshold>
- </HealthCheckConfig>
- </HealthCheck>
-</CreateHealthCheckResponse>
- """
-
- def test_create_health_check_fqdn(self):
- self.set_http_response(status_code=201)
- hc = HealthCheck(ip_addr='', port=443, hc_type='HTTPS', resource_path='/health_check', fqdn='example.com')
- hc_xml = hc.to_xml()
- self.assertTrue('<FullyQualifiedDomainName>' in hc_xml)
- self.assertFalse('<IPAddress>' in hc_xml)
-
- response = self.service_connection.create_health_check(hc)
- hc_resp = response['CreateHealthCheckResponse']['HealthCheck']['HealthCheckConfig']
- self.assertEqual(hc_resp['FullyQualifiedDomainName'], 'example.com')
- self.assertEqual(hc_resp['ResourcePath'], '/health_check')
- self.assertEqual(hc_resp['Type'], 'HTTPS')
- self.assertEqual(hc_resp['Port'], '443')
- self.assertEqual(hc_resp['ResourcePath'], '/health_check')
- self.assertEqual(response['CreateHealthCheckResponse']['HealthCheck']['Id'], 'f9abfe10-8d2a-4bbd-8f35-796f0f8572f2')
-
-
-@attr(route53=True)
-class TestChangeResourceRecordSetsRoute53(AWSMockServiceTestCase):
- connection_class = Route53Connection
-
- def setUp(self):
- super(TestChangeResourceRecordSetsRoute53, self).setUp()
-
- def default_body(self):
- return b"""
-<ChangeResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <ChangeInfo>
- <Id>/change/C1111111111111</Id>
- <Status>PENDING</Status>
- <SubmittedAt>2014-05-05T10:11:12.123Z</SubmittedAt>
- </ChangeInfo>
-</ChangeResourceRecordSetsResponse>
- """
-
- def test_record_commit(self):
- rrsets = ResourceRecordSets(self.service_connection)
- rrsets.add_change_record('CREATE', Record('vanilla.example.com', 'A', 60, ['1.2.3.4']))
- rrsets.add_change_record('CREATE', Record('alias.example.com', 'AAAA', alias_hosted_zone_id='Z123OTHER', alias_dns_name='target.other', alias_evaluate_target_health=True))
- rrsets.add_change_record('CREATE', Record('wrr.example.com', 'CNAME', 60, ['cname.target'], weight=10, identifier='weight-1'))
- rrsets.add_change_record('CREATE', Record('lbr.example.com', 'TXT', 60, ['text record'], region='us-west-2', identifier='region-1'))
- rrsets.add_change_record('CREATE', Record('failover.example.com', 'A', 60, ['2.2.2.2'], health_check='hc-1234', failover='PRIMARY', identifier='primary'))
-
- changes_xml = rrsets.to_xml()
-
- # the whitespacing doesn't match exactly, so we'll pretty print and drop all new lines
- # not the best, but
- actual_xml = re.sub(r"\s*[\r\n]+", "\n", xml.dom.minidom.parseString(changes_xml).toprettyxml())
- expected_xml = re.sub(r"\s*[\r\n]+", "\n", xml.dom.minidom.parseString(b"""
-<ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
- <ChangeBatch>
- <Comment>None</Comment>
- <Changes>
- <Change>
- <Action>CREATE</Action>
- <ResourceRecordSet>
- <Name>vanilla.example.com</Name>
- <Type>A</Type>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>1.2.3.4</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- </Change>
- <Change>
- <Action>CREATE</Action>
- <ResourceRecordSet>
- <Name>alias.example.com</Name>
- <Type>AAAA</Type>
- <AliasTarget>
- <HostedZoneId>Z123OTHER</HostedZoneId>
- <DNSName>target.other</DNSName>
- <EvaluateTargetHealth>true</EvaluateTargetHealth>
- </AliasTarget>
- </ResourceRecordSet>
- </Change>
- <Change>
- <Action>CREATE</Action>
- <ResourceRecordSet>
- <Name>wrr.example.com</Name>
- <Type>CNAME</Type>
- <SetIdentifier>weight-1</SetIdentifier>
- <Weight>10</Weight>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>cname.target</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- </Change>
- <Change>
- <Action>CREATE</Action>
- <ResourceRecordSet>
- <Name>lbr.example.com</Name>
- <Type>TXT</Type>
- <SetIdentifier>region-1</SetIdentifier>
- <Region>us-west-2</Region>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>text record</Value>
- </ResourceRecord>
- </ResourceRecords>
- </ResourceRecordSet>
- </Change>
- <Change>
- <Action>CREATE</Action>
- <ResourceRecordSet>
- <Name>failover.example.com</Name>
- <Type>A</Type>
- <SetIdentifier>primary</SetIdentifier>
- <Failover>PRIMARY</Failover>
- <TTL>60</TTL>
- <ResourceRecords>
- <ResourceRecord>
- <Value>2.2.2.2</Value>
- </ResourceRecord>
- </ResourceRecords>
- <HealthCheckId>hc-1234</HealthCheckId>
- </ResourceRecordSet>
- </Change>
- </Changes>
- </ChangeBatch>
-</ChangeResourceRecordSetsRequest>
- """).toprettyxml())
-
- # Note: the alias XML should not include the TTL, even if it's specified in the object model
- self.assertEqual(actual_xml, expected_xml)

Powered by Google App Engine
This is Rietveld 408576698