Add source parameter to Record.from_rrs

This commit is contained in:
Ross McFarland
2023-09-25 12:26:59 -07:00
parent 4a7e488d2f
commit 76e330a7c3
2 changed files with 8 additions and 3 deletions
+4 -2
View File
@@ -113,7 +113,7 @@ class Record(EqualityTupleMixin):
return reasons
@classmethod
def from_rrs(cls, zone, rrs, lenient=False):
def from_rrs(cls, zone, rrs, lenient=False, source=None):
# group records by name & type so that multiple rdatas can be combined
# into a single record when needed
grouped = defaultdict(list)
@@ -128,7 +128,9 @@ class Record(EqualityTupleMixin):
name = zone.hostname_from_fqdn(rr.name)
_class = cls._CLASSES[rr._type]
data = _class.data_from_rrs(rrs)
record = Record.new(zone, name, data, lenient=lenient)
record = Record.new(
zone, name, data, lenient=lenient, source=source
)
records.append(record)
return records
+4 -1
View File
@@ -159,10 +159,13 @@ class TestRecord(TestCase):
)
zone = Zone('unit.tests.', [])
records = {(r._type, r.name): r for r in Record.from_rrs(zone, rrs)}
records = {
(r._type, r.name): r for r in Record.from_rrs(zone, rrs, source=99)
}
record = records[('A', '')]
self.assertEqual(42, record.ttl)
self.assertEqual(['1.2.3.4', '2.3.4.5'], record.values)
self.assertEqual(99, record.source)
record = records[('AAAA', '')]
self.assertEqual(43, record.ttl)
self.assertEqual(['fc00::1', 'fc00::2'], record.values)