diff --git a/tests/test_octodns_record.py b/tests/test_octodns_record.py index 43db74a..c59547d 100644 --- a/tests/test_octodns_record.py +++ b/tests/test_octodns_record.py @@ -298,6 +298,38 @@ class TestRecord(TestCase): DummyRecord().__repr__() + def test_from_rrs(self): + # also tests ValuesMixin.data_from_rrs and ValueMixin.data_from_rrs + rrs = ( + Rr('unit.tests.', 'A', 42, '1.2.3.4'), + Rr('unit.tests.', 'AAAA', 43, 'fc00::1'), + Rr('www.unit.tests.', 'A', 44, '3.4.5.6'), + Rr('unit.tests.', 'A', 42, '2.3.4.5'), + Rr('cname.unit.tests.', 'CNAME', 46, 'target.unit.tests.'), + Rr('unit.tests.', 'AAAA', 43, 'fc00::0002'), + Rr('www.unit.tests.', 'AAAA', 45, 'fc00::3'), + ) + + zone = Zone('unit.tests.', []) + records = {(r._type, r.name): r for r in Record.from_rrs(zone, rrs)} + record = records[('A', '')] + self.assertEqual(42, record.ttl) + self.assertEqual(['1.2.3.4', '2.3.4.5'], record.values) + record = records[('AAAA', '')] + self.assertEqual(43, record.ttl) + self.assertEqual(['fc00::1', 'fc00::2'], record.values) + record = records[('A', 'www')] + self.assertEqual(44, record.ttl) + self.assertEqual(['3.4.5.6'], record.values) + record = records[('AAAA', 'www')] + self.assertEqual(45, record.ttl) + self.assertEqual(['fc00::3'], record.values) + record = records[('CNAME', 'cname')] + self.assertEqual(46, record.ttl) + self.assertEqual('target.unit.tests.', record.value) + # make sure there's nothing extra + self.assertEqual(5, len(records)) + def test_ip_address_rdata_text(self): # anything goes, we're a noop