]> git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.recursor-dnssec/test_SimpleForwardOverDoT.py
Merge pull request #10513 from Habbie/pdnsutil-edit-zone-reask
[thirdparty/pdns.git] / regression-tests.recursor-dnssec / test_SimpleForwardOverDoT.py
1 import dns
2 import os
3 import subprocess
4 from recursortests import RecursorTest
5
6 class testSimpleForwardOverDoT(RecursorTest):
7 """
8 This is forwarding to a DoT server in a very basic way and is dependent on Quad9 working
9 """
10
11 _confdir = 'SimpleForwardOverDoT'
12 _config_template = """
13 dnssec=validate
14 forward-zones-recurse=.=9.9.9.9:853
15 """
16
17 @classmethod
18 def setUpClass(cls):
19
20 # we don't need all the auth stuff
21 cls.setUpSockets()
22
23 confdir = os.path.join('configs', cls._confdir)
24 cls.createConfigDir(confdir)
25
26 cls.generateRecursorConfig(confdir)
27 cls.startRecursor(confdir, cls._recursorPort)
28
29 def testA(self):
30 expected = dns.rrset.from_text('dns.google.', 0, dns.rdataclass.IN, 'A', '8.8.8.8', '8.8.4.4')
31 query = dns.message.make_query('dns.google', 'A', want_dnssec=True)
32 query.flags |= dns.flags.AD
33
34 res = self.sendUDPQuery(query)
35
36 self.assertMessageIsAuthenticated(res)
37 self.assertRRsetInAnswer(res, expected)
38 self.assertMatchingRRSIGInAnswer(res, expected)
39
40 rec_controlCmd = [os.environ['RECCONTROL'],
41 '--config-dir=%s' % 'configs/' + self._confdir,
42 'get dot-outqueries']
43 try:
44 ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
45 self.assertNotEqual(ret, b'UNKNOWN\n')
46 self.assertNotEqual(ret, b'0\n')
47
48 except subprocess.CalledProcessError as e:
49 print(e.output)
50 raise
51
52 rec_controlCmd = [os.environ['RECCONTROL'],
53 '--config-dir=%s' % 'configs/' + self._confdir,
54 'get tcp-outqueries']
55 try:
56 ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
57 self.assertEqual(ret, b'0\n')
58
59 except subprocess.CalledProcessError as e:
60 print(e.output)
61 raise
62