diff options
-rw-r--r-- | dns/versioned.py | 5 | ||||
-rw-r--r-- | tests/test_zone.py | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/dns/versioned.py b/dns/versioned.py index 8b6c275..9e26759 100644 --- a/dns/versioned.py +++ b/dns/versioned.py @@ -265,7 +265,10 @@ class Zone(dns.zone.Zone): if create: raise UseTransaction rdataset = super().get_rdataset(name, rdtype, covers) - return dns.rdataset.ImmutableRdataset(rdataset) + if rdataset is not None: + return dns.rdataset.ImmutableRdataset(rdataset) + else: + return None def delete_rdataset(self, name, rdtype, covers=dns.rdatatype.NONE): raise UseTransaction diff --git a/tests/test_zone.py b/tests/test_zone.py index 45fa272..9059388 100644 --- a/tests/test_zone.py +++ b/tests/test_zone.py @@ -1076,6 +1076,18 @@ class VersionedZoneTestCase(unittest.TestCase): dns.rdatatype.RRSIG, dns.rdatatype.NSEC)) + def testGetRdataset1(self): + z = dns.zone.from_text(example_text, 'example.', relativize=True, + zone_factory=dns.versioned.Zone) + rds = z.get_rdataset('@', 'soa') + exrds = dns.rdataset.from_text('IN', 'SOA', 300, 'foo bar 1 2 3 4 5') + self.assertEqual(rds, exrds) + + def testGetRdataset2(self): + z = dns.zone.from_text(example_text, 'example.', relativize=True, + zone_factory=dns.versioned.Zone) + rds = z.get_rdataset('@', 'loc') + self.assertTrue(rds is None) if __name__ == '__main__': unittest.main() |