From 1a5c9a2c5e612c86c246724cb88ec51de54a13f1 Mon Sep 17 00:00:00 2001 From: Ross McFarland Date: Wed, 29 Nov 2023 14:03:22 -0800 Subject: [PATCH] Flip ValuesMixin._values logic to handle/have key in all cases --- octodns/record/base.py | 14 +++++++------- tests/test_octodns_record.py | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/octodns/record/base.py b/octodns/record/base.py index d203cea..5d5d0af 100644 --- a/octodns/record/base.py +++ b/octodns/record/base.py @@ -309,16 +309,16 @@ class ValuesMixin(object): def _data(self): ret = super()._data() - if len(self.values) > 1: - values = [getattr(v, 'data', v) for v in self.values if v] - if len(values) > 1: - ret['values'] = values - elif len(values) == 1: - ret['value'] = values[0] - elif len(self.values) == 1: + if len(self.values) == 1: v = self.values[0] if v: ret['value'] = getattr(v, 'data', v) + else: + values = [getattr(v, 'data', v) for v in self.values if v] + if len(values) == 1: + ret['value'] = values[0] + else: + ret['values'] = values return ret diff --git a/tests/test_octodns_record.py b/tests/test_octodns_record.py index 0fe3d57..4d52b71 100644 --- a/tests/test_octodns_record.py +++ b/tests/test_octodns_record.py @@ -197,19 +197,19 @@ class TestRecord(TestCase): ) def test_values_mixin_data(self): - # no values, no value or values in data + # empty values -> empty values in data a = ARecord(self.zone, '', {'type': 'A', 'ttl': 600, 'values': []}) - self.assertNotIn('values', a.data) + self.assertEqual([], a.data['values']) # empty value, no value or values in data b = ARecord(self.zone, '', {'type': 'A', 'ttl': 600, 'values': ['']}) self.assertNotIn('value', b.data) - # empty/None values, no value or values in data + # empty/None values -> empty values in data c = ARecord( self.zone, '', {'type': 'A', 'ttl': 600, 'values': ['', None]} ) - self.assertNotIn('values', c.data) + self.assertEqual([], a.data['values']) # empty/None values and valid, value in data c = ARecord(