1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Improve checking and creating Azure DNS Zones

This change improves the process for checking for AzureDNS zones by using the known set and not relying upon custom error handling.

Since the provider already fetches the zones, octodns doesn't need to make a second call to check for the existence of the zone - _populate_zones already does that for us.
This commit is contained in:
Robert Reichel
2021-01-29 15:11:27 -05:00
parent e232d595de
commit a8505d66f1
2 changed files with 34 additions and 32 deletions

View File

@@ -498,32 +498,42 @@ class TestAzureDnsProvider(TestCase):
record_list = provider._dns_client.record_sets.list_by_dns_zone
record_list.return_value = rs
zone_list = provider._dns_client.zones.list_by_resource_group
zone_list.return_value = [zone]
exists = provider.populate(zone)
self.assertTrue(exists)
self.assertEquals(len(zone.records), 17)
self.assertTrue(exists)
def test_populate_zone(self):
provider = self._get_provider()
zone_list = provider._dns_client.zones.list_by_resource_group
zone_list.return_value = [AzureZone(location='global'),
AzureZone(location='global')]
zone_1 = AzureZone(location='global')
# This is far from ideal but the zone constructor doesn't let me set it on creation
zone_1.name = "zone-1"
zone_2 = AzureZone(location='global')
# This is far from ideal but the zone constructor doesn't let me set it on creation
zone_2.name = "zone-2"
zone_list.return_value = [zone_1,
zone_2,
zone_1]
provider._populate_zones()
self.assertEquals(len(provider._azure_zones), 1)
# This should be returning two zones since two zones are the same
self.assertEquals(len(provider._azure_zones), 2)
def test_bad_zone_response(self):
provider = self._get_provider()
_get = provider._dns_client.zones.get
_get.side_effect = CloudError(Mock(status=404), 'Azure Error')
trip = False
try:
provider._check_zone('unit.test', create=False)
except CloudError:
trip = True
self.assertEquals(trip, True)
self.assertEquals(
provider._check_zone('unit.test', create=False),
None
)
def test_apply(self):
provider = self._get_provider()