diff --git a/octodns/record/__init__.py b/octodns/record/__init__.py index d3214c2..2d544cc 100644 --- a/octodns/record/__init__.py +++ b/octodns/record/__init__.py @@ -417,6 +417,15 @@ class ValuesMixin(object): return ret + @property + def rrs(self): + return ( + self.fqdn, + self._type, + self.ttl, + [v.rdata_text for v in self.values], + ) + def __repr__(self): values = "', '".join([str(v) for v in self.values]) klass = self.__class__.__name__ @@ -510,6 +519,10 @@ class ValueMixin(object): ret['value'] = getattr(self.value, 'data', self.value) return ret + @property + def rrs(self): + return self.fqdn, self._type, self.ttl, [self.value.rdata_text] + def __repr__(self): klass = self.__class__.__name__ return f'<{klass} {self._type} {self.ttl}, {self.decoded_fqdn}, {self.value}>' diff --git a/tests/test_octodns_record.py b/tests/test_octodns_record.py index 19a0f00..b716f43 100644 --- a/tests/test_octodns_record.py +++ b/tests/test_octodns_record.py @@ -2508,6 +2508,26 @@ class TestRecord(TestCase): # nothing much to test, just make sure that things don't blow up 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): zone = Zone('unit.tests.', [])