mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Add test for Route53Provider geo -> plain conversion
This commit is contained in:
@@ -90,6 +90,7 @@ class _Route53Record(object):
|
||||
elif self.geo:
|
||||
geo = self.geo
|
||||
rrset['SetIdentifier'] = geo.code
|
||||
if self.health_check_id:
|
||||
rrset['HealthCheckId'] = self.health_check_id
|
||||
if geo.subdivision_code:
|
||||
rrset['GeoLocation'] = {
|
||||
|
||||
@@ -500,6 +500,70 @@ class TestRoute53Provider(TestCase):
|
||||
self.assertEquals(1, provider.apply(plan))
|
||||
stubber.assert_no_pending_responses()
|
||||
|
||||
# Update converting to non-geo by monkey patching in a populate that
|
||||
# modifies the A record with geos
|
||||
def mod_add_geo_populate(existing, target):
|
||||
for record in self.expected.records:
|
||||
if record._type != 'A' or record.geo:
|
||||
existing.records.add(record)
|
||||
record = Record.new(existing, 'simple', {
|
||||
'ttl': 61,
|
||||
'type': 'A',
|
||||
'values': ['1.2.3.4', '2.2.3.4'],
|
||||
'geo': {
|
||||
'OC': ['3.2.3.4', '4.2.3.4'],
|
||||
}
|
||||
})
|
||||
existing.records.add(record)
|
||||
|
||||
provider.populate = mod_add_geo_populate
|
||||
change_resource_record_sets_params = {
|
||||
'ChangeBatch': {
|
||||
'Changes': [{
|
||||
'Action': 'DELETE',
|
||||
'ResourceRecordSet': {
|
||||
'GeoLocation': {'ContinentCode': 'OC'},
|
||||
'Name': 'simple.unit.tests.',
|
||||
'ResourceRecords': [{'Value': '3.2.3.4'},
|
||||
{'Value': '4.2.3.4'}],
|
||||
'SetIdentifier': 'OC',
|
||||
'TTL': 61,
|
||||
'Type': 'A'}
|
||||
}, {
|
||||
'Action': 'DELETE',
|
||||
'ResourceRecordSet': {
|
||||
'GeoLocation': {'CountryCode': '*'},
|
||||
'Name': 'simple.unit.tests.',
|
||||
'ResourceRecords': [{'Value': '1.2.3.4'},
|
||||
{'Value': '2.2.3.4'}],
|
||||
'SetIdentifier': 'default',
|
||||
'TTL': 61,
|
||||
'Type': 'A'}
|
||||
}, {
|
||||
'Action': 'CREATE',
|
||||
'ResourceRecordSet': {
|
||||
'Name': 'simple.unit.tests.',
|
||||
'ResourceRecords': [{'Value': '1.2.3.4'},
|
||||
{'Value': '2.2.3.4'}],
|
||||
'TTL': 60,
|
||||
'Type': 'A'}
|
||||
}],
|
||||
'Comment': ANY
|
||||
},
|
||||
'HostedZoneId': 'z42'
|
||||
}
|
||||
stubber.add_response('change_resource_record_sets',
|
||||
{'ChangeInfo': {
|
||||
'Id': 'id',
|
||||
'Status': 'PENDING',
|
||||
'SubmittedAt': '2017-01-29T01:02:03Z',
|
||||
}}, change_resource_record_sets_params)
|
||||
plan = provider.plan(self.expected)
|
||||
self.assertEquals(1, len(plan.changes))
|
||||
self.assertIsInstance(plan.changes[0], Update)
|
||||
self.assertEquals(1, provider.apply(plan))
|
||||
stubber.assert_no_pending_responses()
|
||||
|
||||
def test_sync_create(self):
|
||||
provider, stubber = self._get_stubbed_provider()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user