Browse Source

Implement Record.rrs

pull/930/head
Ross McFarland 3 years ago
parent
commit
7f0cfb08a2
No known key found for this signature in database GPG Key ID: 943B179E15D3B22A
2 changed files with 33 additions and 0 deletions
  1. +13
    -0
      octodns/record/__init__.py
  2. +20
    -0
      tests/test_octodns_record.py

+ 13
- 0
octodns/record/__init__.py View File

@ -417,6 +417,15 @@ class ValuesMixin(object):
return ret return ret
@property
def rrs(self):
return (
self.fqdn,
self._type,
self.ttl,
[v.rdata_text for v in self.values],
)
def __repr__(self): def __repr__(self):
values = "', '".join([str(v) for v in self.values]) values = "', '".join([str(v) for v in self.values])
klass = self.__class__.__name__ klass = self.__class__.__name__
@ -510,6 +519,10 @@ class ValueMixin(object):
ret['value'] = getattr(self.value, 'data', self.value) ret['value'] = getattr(self.value, 'data', self.value)
return ret return ret
@property
def rrs(self):
return self.fqdn, self._type, self.ttl, [self.value.rdata_text]
def __repr__(self): def __repr__(self):
klass = self.__class__.__name__ klass = self.__class__.__name__
return f'<{klass} {self._type} {self.ttl}, {self.decoded_fqdn}, {self.value}>' return f'<{klass} {self._type} {self.ttl}, {self.decoded_fqdn}, {self.value}>'


+ 20
- 0
tests/test_octodns_record.py View File

@ -2508,6 +2508,26 @@ class TestRecord(TestCase):
# nothing much to test, just make sure that things don't blow up # nothing much to test, just make sure that things don't blow up
Rr('name', 'type', 42, 'Hello World!').__repr__() Rr('name', 'type', 42, 'Hello World!').__repr__()
zone = Zone('unit.tests.', [])
record = Record.new(
zone,
'a',
{'ttl': 42, 'type': 'A', 'values': ['1.2.3.4', '2.3.4.5']},
)
self.assertEqual(
('a.unit.tests.', 'A', 42, ['1.2.3.4', '2.3.4.5']), record.rrs
)
record = Record.new(
zone,
'cname',
{'ttl': 43, 'type': 'CNAME', 'value': 'target.unit.tests.'},
)
self.assertEqual(
('cname.unit.tests.', 'CNAME', 43, ['target.unit.tests.']),
record.rrs,
)
class TestRecordValidation(TestCase): class TestRecordValidation(TestCase):
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])


Loading…
Cancel
Save