diff options
| author | Bob Halley <halley@dnspython.org> | 2020-06-18 08:35:20 -0700 |
|---|---|---|
| committer | Bob Halley <halley@dnspython.org> | 2020-06-18 08:35:20 -0700 |
| commit | 0361f3af0ead4667d3ed30ba4c4f0e19eaf1c9f5 (patch) | |
| tree | 84e7bd62fe8f66c440aba0caf07b3cf8269e6eac /tests/test_generate.py | |
| parent | 671b549f10368c22db3b1ba891a0118bdde9bea7 (diff) | |
| download | dnspython-0361f3af0ead4667d3ed30ba4c4f0e19eaf1c9f5.tar.gz | |
more zone test coverage
Diffstat (limited to 'tests/test_generate.py')
| -rw-r--r-- | tests/test_generate.py | 45 |
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() |
