]> git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.recursor-dnssec/test_Simple.py
Merge pull request #3773 from rgacogne/dnsdist-web-req-resp
[thirdparty/pdns.git] / regression-tests.recursor-dnssec / test_Simple.py
1 import dns
2 from recursortests import RecursorTest
3
4 class testSimple(RecursorTest):
5 _confdir = 'Simple'
6
7 _config_template = """dnssec=validate"""
8
9 def testSOAs(self):
10 for zone in ['.', 'example.', 'secure.example.']:
11 expected = dns.rrset.from_text(zone, 0, dns.rdataclass.IN, 'SOA', self._SOA)
12 query = dns.message.make_query(zone, 'SOA', want_dnssec=True)
13
14 res = self.sendUDPQuery(query)
15
16 self.assertMessageIsAuthenticated(res)
17 self.assertRRsetInAnswer(res, expected)
18 self.assertMatchingRRSIGInAnswer(res, expected)
19
20 def testA(self):
21 expected = dns.rrset.from_text('ns.secure.example.', 0, dns.rdataclass.IN, 'A', '{prefix}.9'.format(prefix=self._PREFIX))
22 query = dns.message.make_query('ns.secure.example', 'A', want_dnssec=True)
23
24 res = self.sendUDPQuery(query)
25
26 self.assertMessageIsAuthenticated(res)
27 self.assertRRsetInAnswer(res, expected)
28 self.assertMatchingRRSIGInAnswer(res, expected)
29
30 def testDelegation(self):
31 query = dns.message.make_query('example', 'NS', want_dnssec=True)
32
33 expectedNS = dns.rrset.from_text('example.', 0, 'IN', 'NS', 'ns1.example.', 'ns2.example.')
34
35 res = self.sendUDPQuery(query)
36
37 self.assertMessageIsAuthenticated(res)
38 self.assertRRsetInAnswer(res, expectedNS)
39
40 def testBogus(self):
41 query = dns.message.make_query('ted.bogus.example', 'A', want_dnssec=True)
42
43 res = self.sendUDPQuery(query)
44
45 self.assertRcodeEqual(res, dns.rcode.SERVFAIL)