]> git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.recursor-dnssec/test_SimpleForwardOverDoT.py
Merge pull request #13770 from Assumeru/require-tsig
[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 devonly-regression-test-mode
16 """
17
18 @classmethod
19 def setUpClass(cls):
20
21 # we don't need all the auth stuff
22 cls.setUpSockets()
23
24 confdir = os.path.join('configs', cls._confdir)
25 cls.createConfigDir(confdir)
26
27 cls.generateRecursorConfig(confdir)
28 cls.startRecursor(confdir, cls._recursorPort)
29
30 def testA(self):
31 expected = dns.rrset.from_text('dns.google.', 0, dns.rdataclass.IN, 'A', '8.8.8.8', '8.8.4.4')
32 query = dns.message.make_query('dns.google', 'A', want_dnssec=True)
33 query.flags |= dns.flags.AD
34
35 res = self.sendUDPQuery(query)
36
37 self.assertMessageIsAuthenticated(res)
38 self.assertRRsetInAnswer(res, expected)
39 self.assertMatchingRRSIGInAnswer(res, expected)
40
41 rec_controlCmd = [os.environ['RECCONTROL'],
42 '--config-dir=%s' % 'configs/' + self._confdir,
43 'get dot-outqueries']
44 try:
45 ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
46 self.assertNotEqual(ret, b'UNKNOWN\n')
47 self.assertNotEqual(ret, b'0\n')
48
49 except subprocess.CalledProcessError as e:
50 print(e.output)
51 raise
52
53 rec_controlCmd = [os.environ['RECCONTROL'],
54 '--config-dir=%s' % 'configs/' + self._confdir,
55 'get tcp-outqueries']
56 try:
57 ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
58 self.assertEqual(ret, b'0\n')
59
60 except subprocess.CalledProcessError as e:
61 print(e.output)
62 raise
63