From: Bob Halley Date: Wed, 24 Dec 2025 22:25:21 +0000 (-0800) Subject: minor coverage enhancements X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7d966d9ddaff29cfc66b944a2bb76881a43eeb5;p=thirdparty%2Fdnspython.git minor coverage enhancements --- diff --git a/dns/nameserver.py b/dns/nameserver.py index c9307d3e..4962884f 100644 --- a/dns/nameserver.py +++ b/dns/nameserver.py @@ -11,19 +11,19 @@ class Nameserver: pass def __str__(self): - raise NotImplementedError + raise NotImplementedError # pragma: no cover def kind(self) -> str: - raise NotImplementedError + raise NotImplementedError # pragma: no cover def is_always_max_size(self) -> bool: - raise NotImplementedError + raise NotImplementedError # pragma: no cover def answer_nameserver(self) -> str: - raise NotImplementedError + raise NotImplementedError # pragma: no cover def answer_port(self) -> int: - raise NotImplementedError + raise NotImplementedError # pragma: no cover def query( self, @@ -35,7 +35,7 @@ class Nameserver: one_rr_per_rrset: bool = False, ignore_trailing: bool = False, ) -> dns.message.Message: - raise NotImplementedError + raise NotImplementedError # pragma: no cover async def async_query( self, @@ -48,7 +48,7 @@ class Nameserver: one_rr_per_rrset: bool = False, ignore_trailing: bool = False, ) -> dns.message.Message: - raise NotImplementedError + raise NotImplementedError # pragma: no cover class AddressAndPortNameserver(Nameserver): @@ -58,7 +58,7 @@ class AddressAndPortNameserver(Nameserver): self.port = port def kind(self) -> str: - raise NotImplementedError + raise NotImplementedError # pragma: no cover def is_always_max_size(self) -> bool: return False diff --git a/dns/node.py b/dns/node.py index caeebd5b..905d9881 100644 --- a/dns/node.py +++ b/dns/node.py @@ -111,7 +111,7 @@ class Node: return s.getvalue()[:-1] def __repr__(self): - return "" + return "" # pragma: no cover def __eq__(self, other): # @@ -126,7 +126,7 @@ class Node: return True def __ne__(self, other): - return not self.__eq__(other) + return not self.__eq__(other) # pragma: no cover def __len__(self): return len(self.rdatasets) @@ -278,7 +278,7 @@ class Node: """ if not isinstance(replacement, dns.rdataset.Rdataset): - raise ValueError("replacement is not an rdataset") + raise ValueError("replacement is not an rdataset") # pragma: no cover if isinstance(replacement, dns.rrset.RRset): # RRsets are not good replacements as the match() method # is not compatible. diff --git a/tests/test_wire.py b/tests/test_wire.py index 6d9df182..fa7a418d 100644 --- a/tests/test_wire.py +++ b/tests/test_wire.py @@ -1,10 +1,12 @@ # Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license +import io import unittest import dns.exception import dns.wire import dns.name +import dns._render_util class BinaryTestCase(unittest.TestCase): @@ -85,3 +87,16 @@ class BinaryTestCase(unittest.TestCase): with self.assertRaises(NotImplementedError): with p.restrict_to(5): raise NotImplementedError + + def test_prefixed_length(self): + out = io.BytesIO() + with dns._render_util.prefixed_length(out, 1): + out.write(b"hello") + value = out.getvalue() + self.assertEqual(value, b"\x05hello") + + def test_prefixed_length_overflow(self): + out = io.BytesIO() + with self.assertRaises(dns.exception.FormError): + with dns._render_util.prefixed_length(out, 1): + out.write(b"x" * 256) diff --git a/tests/test_zone.py b/tests/test_zone.py index dc0a225e..94814beb 100644 --- a/tests/test_zone.py +++ b/tests/test_zone.py @@ -1171,6 +1171,21 @@ class ZoneTestCase(unittest.TestCase): with self.assertRaises(KeyError): z.replace_rdataset(too_long_relative, rds) + def testImmutableNodes(self): + z = dns.zone.from_text(example_text, "example.", relativize=True) + node = dns.node.ImmutableNode(z.find_node("@")) + self.assertTrue(node.is_immutable) + with self.assertRaises(TypeError): + node.find_rdataset(dns.rdataclass.IN, dns.rdatatype.RP, create=True) + node.find_rdataset(dns.rdataclass.IN, dns.rdatatype.SOA) + with self.assertRaises(TypeError): + node.get_rdataset(dns.rdataclass.IN, dns.rdatatype.RP, create=True) + node.get_rdataset(dns.rdataclass.IN, dns.rdatatype.SOA) + with self.assertRaises(TypeError): + node.delete_rdataset(dns.rdataclass.IN, dns.rdatatype.SOA) + with self.assertRaises(TypeError): + node.replace_rdataset(None) + class VersionedZoneTestCase(unittest.TestCase): zone_factory = dns.versioned.Zone