]> git.ipfire.org Git - thirdparty/pdns.git/blame - regression-tests.recursor-dnssec/test_Sortlist.py
Introduce structured YAML settings for Recursor.
[thirdparty/pdns.git] / regression-tests.recursor-dnssec / test_Sortlist.py
CommitLineData
2fed5be3
PD
1import dns
2from recursortests import RecursorTest
3
4
5class testSortlist(RecursorTest):
6 _confdir = 'Sortlist'
7
8 _config_template = """dnssec=off"""
9 _lua_config_file = """addSortList("0.0.0.0/0",
10 {"17.238.240.0/24", "17.138.149.200",
11 {"17.218.242.254", "17.218.252.254"},
12 "17.38.42.80",
13 "17.208.240.100" })"""
14
15 def testSortlist(self):
16 msg = dns.message.make_query("sortcname.example.", dns.rdatatype.ANY)
17 msg.flags = dns.flags.from_text('RD')
18
19 res = self.sendUDPQuery(msg, fwparams=dict(one_rr_per_rrset=True))
20
5b44ffbb 21 self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
2fed5be3
PD
22 self.assertRcodeEqual(res, dns.rcode.NOERROR)
23
24 indexCNAME = -1
25 indexMX = -1
26 recordsA = []
27
28 for i, ans in enumerate(res.answer):
29 if ans.rdtype == dns.rdatatype.CNAME:
30 self.assertEqual(indexCNAME, -1)
31 indexCNAME = i
32 elif ans.rdtype == dns.rdatatype.MX:
33 self.assertEqual(indexMX, -1)
34 indexMX = i
35 elif ans.rdtype == dns.rdatatype.A:
36 recordsA.append(str(ans).split()[-1])
37
38 self.assertEqual(indexCNAME, 0)
39 self.assertGreater(indexMX, 0)
40
41 self.assertEqual(recordsA, ['17.238.240.5', '17.38.42.80', '192.168.0.1'])