]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
improve coverage
authorBob Halley <halley@dnspython.org>
Fri, 19 Jun 2020 18:14:34 +0000 (11:14 -0700)
committerBob Halley <halley@dnspython.org>
Fri, 19 Jun 2020 18:14:34 +0000 (11:14 -0700)
tests/test_rdataset.py

index 9410dc61939fbfee0a9b716facde1a14eb324247..ad6b557e03df14b3cb38dd73da61a64b6fa6adf1 100644 (file)
@@ -4,7 +4,10 @@
 import unittest
 
 import dns.name
+import dns.rdata
+import dns.rdataclass
 import dns.rdataset
+import dns.rdatatype
 
 class RdatasetTestCase(unittest.TestCase):
 
@@ -33,5 +36,50 @@ class RdatasetTestCase(unittest.TestCase):
         self.assertFalse(r1 is r2)
         self.assertTrue(r1 == r2)
 
+    def testAddIncompatible(self):
+        rds = dns.rdataset.Rdataset(dns.rdataclass.IN, dns.rdatatype.A)
+        rd1 = dns.rdata.from_text(dns.rdataclass.IN, dns.rdatatype.A,
+                                  '10.0.0.1')
+        rd2 = dns.rdata.from_text(dns.rdataclass.IN, dns.rdatatype.AAAA,
+                                  '::1')
+        rds.add(rd1, 30)
+        self.assertRaises(dns.rdataset.IncompatibleTypes,
+                          lambda: rds.add(rd2, 30))
+
+    def testDifferingCovers(self):
+        rds = dns.rdataset.Rdataset(dns.rdataclass.IN, dns.rdatatype.RRSIG,
+                                    dns.rdatatype.A)
+        rd1 = dns.rdata.from_text(
+            dns.rdataclass.IN, dns.rdatatype.RRSIG,
+            'A 1 3 3600 20200101000000 20030101000000 2143 foo Ym9ndXM=')
+        rd2 = dns.rdata.from_text(
+            dns.rdataclass.IN, dns.rdatatype.RRSIG,
+            'AAAA 1 3 3600 20200101000000 20030101000000 2143 foo Ym9ndXM=')
+        rds.add(rd1, 30)
+        self.assertRaises(dns.rdataset.DifferingCovers,
+                          lambda: rds.add(rd2, 30))
+
+    def testUnionUpdate(self):
+        rds1 = dns.rdataset.from_text('in', 'a', 300, '10.0.0.1')
+        rds2 = dns.rdataset.from_text('in', 'a', 30, '10.0.0.2')
+        rdse = dns.rdataset.from_text('in', 'a', 30, '10.0.0.1', '10.0.0.2')
+        rds1.union_update(rds2)
+        self.assertEqual(rds1, rdse)
+
+    def testIntersectionUpdate(self):
+        rds1 = dns.rdataset.from_text('in', 'a', 300, '10.0.0.1', '10.0.0.2')
+        rds2 = dns.rdataset.from_text('in', 'a', 30, '10.0.0.2')
+        rdse = dns.rdataset.from_text('in', 'a', 30, '10.0.0.2')
+        rds1.intersection_update(rds2)
+        self.assertEqual(rds1, rdse)
+
+    def testNoEqualToOther(self):
+        rds = dns.rdataset.from_text('in', 'a', 300, '10.0.0.1')
+        self.assertFalse(rds == 123)
+
+    def testEmptyRdataList(self):
+        self.assertRaises(ValueError,
+                          lambda: dns.rdataset.from_rdata_list(300, []))
+
 if __name__ == '__main__':
     unittest.main()