summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2020-09-01 07:06:27 -0700
committerBob Halley <halley@dnspython.org>2020-09-01 07:06:27 -0700
commit650369cd3b76a5ef89676b90cf1be71fd44ea67c (patch)
tree28fa6b551678f9fe1d539d6fb2f576c256a70e3d
parent173a2da9454967528c848f658ae15ce930a05e68 (diff)
downloaddnspython-650369cd3b76a5ef89676b90cf1be71fd44ea67c.tar.gz
improve versioned zone coverage
-rw-r--r--tests/test_zone.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_zone.py b/tests/test_zone.py
index 3f938c6..66f3ad5 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()