From ec41e0377e9f689ed5865977b32c22cf643a688b Mon Sep 17 00:00:00 2001 From: Viranch Mehta Date: Thu, 12 Aug 2021 22:15:46 -0700 Subject: [PATCH] multi-value PTR tests for Azure --- octodns/record/__init__.py | 2 +- tests/test_octodns_provider_azuredns.py | 30 +++++++++++++++++++------ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/octodns/record/__init__.py b/octodns/record/__init__.py index 93f6660..2e17948 100644 --- a/octodns/record/__init__.py +++ b/octodns/record/__init__.py @@ -1286,7 +1286,7 @@ class PtrRecord(_ValuesMixin, Record): @property def value(self): if len(self.values) == 1: - return self.values[0] + return self.data['value'] raise AttributeError("Multi-value PTR record has no attribute 'value'") diff --git a/tests/test_octodns_provider_azuredns.py b/tests/test_octodns_provider_azuredns.py index 0af8665..b3b52e5 100644 --- a/tests/test_octodns_provider_azuredns.py +++ b/tests/test_octodns_provider_azuredns.py @@ -150,6 +150,11 @@ octo_records.append(Record.new(zone, 'txt3', { 'type': 'TXT', 'values': ['txt multiple test', long_txt]})) +octo_records.append(Record.new(zone, 'ptr2', { + 'ttl': 11, + 'type': 'PTR', + 'values': ['ptr21.unit.tests.', 'ptr22.unit.tests.']})) + azure_records = [] _base0 = _AzureRecord('TestAzure', octo_records[0]) _base0.zone_name = 'unit.tests' @@ -338,6 +343,15 @@ _base18.params['txt_records'] = [TxtRecord(value=['txt multiple test']), TxtRecord(value=[long_txt_az1, long_txt_az2])] azure_records.append(_base18) +_base19 = _AzureRecord('TestAzure', octo_records[19]) +_base19.zone_name = 'unit.tests' +_base19.relative_record_set_name = 'ptr2' +_base19.record_type = 'PTR' +_base19.params['ttl'] = 11 +_base19.params['ptr_records'] = [PtrRecord(ptrdname='ptr21.unit.tests.'), + PtrRecord(ptrdname='ptr22.unit.tests.')] +azure_records.append(_base19) + class Test_AzureRecord(TestCase): def test_azure_record(self): @@ -2054,15 +2068,16 @@ class TestAzureDnsProvider(TestCase): def test_apply(self): provider = self._get_provider() - half = int(len(octo_records) / 2) + expected_n = len(octo_records) + half = int(expected_n / 2) changes = [Create(r) for r in octo_records[:half]] + \ [Update(r, r) for r in octo_records[half:]] deletes = [Delete(r) for r in octo_records] - self.assertEquals(19, provider.apply(Plan(None, zone, - changes, True))) - self.assertEquals(19, provider.apply(Plan(zone, zone, - deletes, True))) + self.assertEquals(expected_n, provider.apply(Plan(None, zone, + changes, True))) + self.assertEquals(expected_n, provider.apply(Plan(zone, zone, + deletes, True))) def test_apply_create_dynamic(self): provider = self._get_provider() @@ -2320,8 +2335,9 @@ class TestAzureDnsProvider(TestCase): _get = provider._dns_client.zones.get _get.side_effect = CloudError(Mock(status=404), err_msg) - self.assertEquals(19, provider.apply(Plan(None, desired, changes, - True))) + expected_n = len(octo_records) + self.assertEquals(expected_n, provider.apply(Plan(None, desired, + changes, True))) def test_check_zone_no_create(self): provider = self._get_provider()