From abaeb309a628b90285906211347ba48c9d81523b Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Fri, 19 Jun 2020 11:14:34 -0700 Subject: [PATCH] improve coverage --- tests/test_rdataset.py | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/test_rdataset.py b/tests/test_rdataset.py index 9410dc61..ad6b557e 100644 --- a/tests/test_rdataset.py +++ b/tests/test_rdataset.py @@ -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() -- 2.47.3