mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Flip ValuesMixin._values logic to handle/have key in all cases
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user