From: Bob Halley Date: Tue, 1 Sep 2020 14:06:27 +0000 (-0700) Subject: improve versioned zone coverage X-Git-Tag: v2.1.0rc1~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=650369cd3b76a5ef89676b90cf1be71fd44ea67c;p=thirdparty%2Fdnspython.git improve versioned zone coverage --- diff --git a/tests/test_zone.py b/tests/test_zone.py index 3f938c6d..66f3ad5a 100644 --- a/tests/test_zone.py +++ b/tests/test_zone.py @@ -820,11 +820,57 @@ class VersionedZoneTestCase(unittest.TestCase): with self.assertRaises(dns.versioned.UseTransaction): z.replace_rdataset('not_there', None) + def testImmutableNodes(self): + z = dns.zone.from_text(example_text, 'example.', relativize=True, + zone_factory=dns.versioned.Zone) + node = z.find_node('@') + with self.assertRaises(TypeError): + node.find_rdataset(dns.rdataclass.IN, dns.rdatatype.RP, + create=True) + with self.assertRaises(TypeError): + node.get_rdataset(dns.rdataclass.IN, dns.rdatatype.RP, + create=True) + with self.assertRaises(TypeError): + node.delete_rdataset(dns.rdataclass.IN, dns.rdatatype.SOA) + with self.assertRaises(TypeError): + node.replace_rdataset(None) + def testSelectDefaultPruningPolicy(self): z = dns.zone.from_text(example_text, 'example.', relativize=True, zone_factory=dns.versioned.Zone) z.set_pruning_policy(None) self.assertEqual(z._pruning_policy, z._default_pruning_policy) + def testSetAlternatePruningPolicyInConstructor(self): + def never_prune(version): + return False + z = dns.versioned.Zone('example', pruning_policy=never_prune) + self.assertEqual(z._pruning_policy, never_prune) + + def testCannotSpecifyBothSerialAndVersionIdToReader(self): + z = dns.zone.from_text(example_text, 'example.', relativize=True, + zone_factory=dns.versioned.Zone) + with self.assertRaises(ValueError): + z.reader(1, 1) + + def testUnknownVersion(self): + z = dns.zone.from_text(example_text, 'example.', relativize=True, + zone_factory=dns.versioned.Zone) + with self.assertRaises(KeyError): + z.reader(99999) + + def testUnknownSerial(self): + z = dns.zone.from_text(example_text, 'example.', relativize=True, + zone_factory=dns.versioned.Zone) + with self.assertRaises(KeyError): + z.reader(serial=99999) + + def testNoRelativizeReader(self): + z = dns.zone.from_text(example_text, 'example.', relativize=False, + zone_factory=dns.versioned.Zone) + with z.reader(serial=1) as txn: + rds = txn.get('example.', 'soa') + self.assertEqual(rds[0].serial, 1) + if __name__ == '__main__': unittest.main()