]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
minor coverage enhancements
authorBob Halley <halley@dnspython.org>
Wed, 24 Dec 2025 22:25:21 +0000 (14:25 -0800)
committerBob Halley <halley@dnspython.org>
Wed, 24 Dec 2025 22:25:21 +0000 (14:25 -0800)
dns/nameserver.py
dns/node.py
tests/test_wire.py
tests/test_zone.py

index c9307d3e2c69c0cf98ce1a10e067daa89dd7f0fb..4962884fa4590923dd8d25c22c6e4f881e080bc8 100644 (file)
@@ -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
index caeebd5b9caac99ca9ce1006c684d66614adf261..905d9881061003499c70375e345b65de4d63c00a 100644 (file)
@@ -111,7 +111,7 @@ class Node:
         return s.getvalue()[:-1]
 
     def __repr__(self):
-        return "<DNS node " + str(id(self)) + ">"
+        return "<DNS node " + str(id(self)) + ">"  # 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.
index 6d9df182f09e3d3b2f7d2acdd463473a372b927b..fa7a418d2d533cbd9bd3e2547b51cf440da482cc 100644 (file)
@@ -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)
index dc0a225ec845c3f7758ca02358c7c568ba5c9ab9..94814beb7253305f18c32df44d085804b30bd244 100644 (file)
@@ -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