]>
git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.recursor-dnssec/test_ServerNames.py
3 from recursortests
import RecursorTest
5 class testServerNames(RecursorTest
):
7 This tests all kinds naming things
10 _confdir
= 'ServerNames'
11 _servername
= 'awesome-pdns1.example.com'
12 _versionbind
= 'Awesome!'
13 _versionbind_expected
= dns
.rrset
.from_text('version.bind.', 86400, 'CH', 'TXT', _versionbind
)
14 _idserver_expected
= dns
.rrset
.from_text('id.server.', 86400, 'CH', 'TXT', _servername
)
16 _config_template
= """
19 """ % (_servername
, _versionbind
)
22 def testVersionBindUDP(self
):
24 Send a version.bind CH TXT query over UDP and look for the version string
26 query
= dns
.message
.make_query('version.bind', 'TXT', 'CH', use_edns
=False)
27 response
= self
.sendUDPQuery(query
)
29 self
.assertEqual(len(response
.answer
), 1)
30 self
.assertRRsetInAnswer(response
, self
._versionbind
_expected
)
32 def testVersionBindTCP(self
):
34 Send a version.bind CH TXT query over TCP and look for the version string
36 query
= dns
.message
.make_query('version.bind', 'TXT', 'CH', use_edns
=False)
37 response
= self
.sendTCPQuery(query
)
39 self
.assertEqual(len(response
.answer
), 1)
40 self
.assertRRsetInAnswer(response
, self
._versionbind
_expected
)
42 def testVersionBindUDPEDNS(self
):
44 Send a version.bind CH TXT query over UDP (with EDNS) and look for the version string
46 query
= dns
.message
.make_query('version.bind', 'TXT', 'CH', use_edns
=True)
47 response
= self
.sendUDPQuery(query
)
49 self
.assertEqual(len(response
.answer
), 1)
50 self
.assertRRsetInAnswer(response
, self
._versionbind
_expected
)
52 def testVersionBindTCPEDNS(self
):
54 Send a version.bind CH TXT query over TCP (with EDNS) and look for the version string
56 query
= dns
.message
.make_query('version.bind', 'TXT', 'CH', use_edns
=True)
57 response
= self
.sendTCPQuery(query
)
59 self
.assertEqual(len(response
.answer
), 1)
60 self
.assertRRsetInAnswer(response
, self
._versionbind
_expected
)
62 def testIdServerUDP(self
):
64 Send a id.server CH TXT query over UDP and look for the server id
66 query
= dns
.message
.make_query('id.server', 'TXT', 'CH', use_edns
=False)
67 response
= self
.sendUDPQuery(query
)
69 self
.assertEqual(len(response
.answer
), 1)
70 self
.assertRRsetInAnswer(response
, self
._idserver
_expected
)
72 def testIdServerTCP(self
):
74 Send a id.server CH TXT query over TCP and look for the server id
76 query
= dns
.message
.make_query('id.server', 'TXT', 'CH', use_edns
=False)
77 response
= self
.sendTCPQuery(query
)
79 self
.assertEqual(len(response
.answer
), 1)
80 self
.assertRRsetInAnswer(response
, self
._idserver
_expected
)
82 def testIdServerUDPEDNS(self
):
84 Send a id.server CH TXT query over UDP (with EDNS) and look for the server id
86 query
= dns
.message
.make_query('id.server', 'TXT', 'CH', use_edns
=True)
87 response
= self
.sendUDPQuery(query
)
89 self
.assertEqual(len(response
.answer
), 1)
90 self
.assertRRsetInAnswer(response
, self
._idserver
_expected
)
92 def testIdServerTCPEDNS(self
):
94 Send a id.server CH TXT query over TCP (with EDNS) and look for the server id
96 query
= dns
.message
.make_query('id.server', 'TXT', 'CH', use_edns
=True)
97 response
= self
.sendTCPQuery(query
)
99 self
.assertEqual(len(response
.answer
), 1)
100 self
.assertRRsetInAnswer(response
, self
._idserver
_expected
)
102 def testNSIDUDP(self
):
104 Send a .|NS query with NSID option
106 opts
= [dns
.edns
.GenericOption(dns
.edns
.NSID
, b
'')]
107 query
= dns
.message
.make_query('.', 'NS', 'IN', use_edns
=True, options
=opts
)
108 response
= self
.sendUDPQuery(query
)
110 self
.assertEqual(len(response
.options
), 1)
111 self
.assertEqual(response
.options
[0].data
, self
._servername
)
113 def testNSIDTCP(self
):
115 Send a .|NS query with NSID option
117 opts
= [dns
.edns
.GenericOption(dns
.edns
.NSID
, b
'')]
118 query
= dns
.message
.make_query('.', 'NS', 'IN', use_edns
=True, options
=opts
)
119 response
= self
.sendTCPQuery(query
)
121 self
.assertEqual(len(response
.options
), 1)
122 self
.assertEqual(response
.options
[0].data
, self
._servername
)