if self.get_rdataset(name, dns.rdatatype.NS) is None:
raise NoNS
- def get_soa(self):
+ def get_soa(self, txn=None):
"""Get the zone SOA RR.
Raises ``dns.zone.NoSOA`` if there is no SOA RRset.
origin_name = dns.name.empty
else:
origin_name = self.origin
- soa = self.get_rdataset(origin_name, dns.rdatatype.SOA)
+ if txn:
+ soa = txn.get(origin_name, dns.rdatatype.SOA)
+ else:
+ soa = self.get_rdataset(origin_name, dns.rdatatype.SOA)
if soa is None:
raise NoSOA
return soa[0]
self.assertTrue(soa.rdtype, dns.rdatatype.SOA)
self.assertEqual(soa.serial, 1)
+ def testGetSoaTxn(self):
+ z = dns.zone.from_text(example_text, 'example.', relativize=True,
+ zone_factory=dns.versioned.Zone)
+ with z.reader(serial=1) as txn:
+ soa = z.get_soa(txn)
+ self.assertTrue(soa.rdtype, dns.rdatatype.SOA)
+ self.assertEqual(soa.serial, 1)
+
+
def testGetSoaEmptyZone(self):
z = dns.zone.Zone('example.')
with self.assertRaises(dns.zone.NoSOA):