summaryrefslogtreecommitdiff
path: root/tests/test_generate.py
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2020-06-18 08:35:20 -0700
committerBob Halley <halley@dnspython.org>2020-06-18 08:35:20 -0700
commit0361f3af0ead4667d3ed30ba4c4f0e19eaf1c9f5 (patch)
tree84e7bd62fe8f66c440aba0caf07b3cf8269e6eac /tests/test_generate.py
parent671b549f10368c22db3b1ba891a0118bdde9bea7 (diff)
downloaddnspython-0361f3af0ead4667d3ed30ba4c4f0e19eaf1c9f5.tar.gz
more zone test coverage
Diffstat (limited to 'tests/test_generate.py')
-rw-r--r--tests/test_generate.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/test_generate.py b/tests/test_generate.py
index 8d90b25..e6fb6f4 100644
--- a/tests/test_generate.py
+++ b/tests/test_generate.py
@@ -138,6 +138,12 @@ ns2 3600 IN A 10.0.0.2
$GENERATE 27-28 prefix-${0,3} A 10.0.0.$
"""
+last_ttl_input = """foo 300 mx 10 target.
+$GENERATE 1-10 foo$ CNAME $.0
+@ 3600 IN SOA foo bar 1 2 3 4 5
+@ 3600 IN NS ns1
+@ 3600 IN NS ns2
+"""
def _rdata_sort(a):
return (a[0], a[2].rdclass, a[2].to_text())
@@ -544,6 +550,45 @@ class GenerateTestCase(unittest.TestCase):
exl.sort(key=_rdata_sort)
self.assertEqual(l, exl)
+ def testNoOrigin(self):
+ def bad():
+ dns.zone.from_text('$GENERATE 1-10 fooo$ CNAME $.0')
+ self.assertRaises(dns.zone.UnknownOrigin, bad)
+
+ def testBadRdata(self):
+ def bad():
+ dns.zone.from_text('$GENERATE 1-10 fooo$ CNAME 10 $.0', 'example')
+ self.assertRaises(dns.exception.SyntaxError, bad)
+
+ def testUsesLastTTL(self):
+ z = dns.zone.from_text(last_ttl_input, 'example')
+ print(z.to_text())
+ rrs = z.find_rrset('foo9', 'CNAME')
+ self.assertEqual(rrs.ttl, 300)
+
+ def testClassMismatch(self):
+ def bad():
+ dns.zone.from_text('$GENERATE 1-10 fooo$ CH CNAME $.0', 'example')
+ self.assertRaises(dns.exception.SyntaxError, bad)
+
+ def testUnknownRdatatype(self):
+ def bad():
+ dns.zone.from_text('$GENERATE 1-10 fooo$ BOGUSTYPE $.0', 'example')
+ self.assertRaises(dns.exception.SyntaxError, bad)
+
+ def testBadAndDangling(self):
+ def bad1():
+ dns.zone.from_text('$GENERATE bogus fooo$ CNAME $.0',
+ 'example.')
+ self.assertRaises(dns.exception.SyntaxError, bad1)
+ def bad2():
+ dns.zone.from_text('$GENERATE 1-10',
+ 'example.')
+ self.assertRaises(dns.exception.SyntaxError, bad2)
+ def bad3():
+ dns.zone.from_text('$GENERATE 1-10 foo$',
+ 'example.')
+ self.assertRaises(dns.exception.SyntaxError, bad3)
if __name__ == '__main__':
unittest.main()