summaryrefslogtreecommitdiff
path: root/tests/test_query.py
diff options
context:
space:
mode:
authorBrian Wellington <bwelling@xbill.org>2020-06-23 16:46:48 -0700
committerBrian Wellington <bwelling@xbill.org>2020-06-23 16:46:48 -0700
commit167c89548218390cd1c28610bec86524a41617bc (patch)
tree776a48841c878ebffce26e11ae3450209554da04 /tests/test_query.py
parent01d0de14fa5c531b3a35ad93e6a5fcd5c14c38e7 (diff)
downloaddnspython-167c89548218390cd1c28610bec86524a41617bc.tar.gz
Add more functionality to nanonameserver.
- When no port is specified, pick the same port for UDP and TCP, so that TCP fallback can be tested. - Change handlers to get a single Request object instead of individual parameters. The Request object contains the message, peer, and connection_type previously passed, and also adds the local address and wire format message. Additionally, it provides convenient properties for accessing the question.
Diffstat (limited to 'tests/test_query.py')
-rw-r--r--tests/test_query.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/tests/test_query.py b/tests/test_query.py
index b967a6e..895dc0d 100644
--- a/tests/test_query.py
+++ b/tests/test_query.py
@@ -248,16 +248,16 @@ ns2 A 10.0.0.1
class AXFRNanoNameserver(Server):
- def handle(self, message, peer, connection_type):
+ def handle(self, request):
self.zone = dns.zone.from_text(axfr_zone, origin='example')
self.origin = self.zone.origin
items = []
soa = self.zone.find_rrset(dns.name.empty, dns.rdatatype.SOA)
- response = dns.message.make_response(message)
+ response = dns.message.make_response(request.message)
response.flags |= dns.flags.AA
response.answer.append(soa)
items.append(response)
- response = dns.message.make_response(message)
+ response = dns.message.make_response(request.message)
response.question = []
response.flags |= dns.flags.AA
for (name, rdataset) in self.zone.iterate_rdatasets():
@@ -269,7 +269,7 @@ class AXFRNanoNameserver(Server):
rrset.update(rdataset)
response.answer.append(rrset)
items.append(response)
- response = dns.message.make_response(message)
+ response = dns.message.make_response(request.message)
response.question = []
response.flags |= dns.flags.AA
response.answer.append(soa)
@@ -329,10 +329,10 @@ class IXFRNanoNameserver(Server):
super().__init__()
self.response_text = response_text
- def handle(self, message, peer, connection_type):
+ def handle(self, request):
try:
r = dns.message.from_text(self.response_text, one_rr_per_rrset=True)
- r.id = message.id
+ r.id = request.message.id
return r
except Exception:
pass
@@ -450,14 +450,14 @@ class XfrTests(unittest.TestCase):
class TSIGNanoNameserver(Server):
- def handle(self, message, peer, connection_type):
- response = dns.message.make_response(message)
+ def handle(self, request):
+ response = dns.message.make_response(request.message)
response.set_rcode(dns.rcode.REFUSED)
response.flags |= dns.flags.RA
try:
- if message.question[0].rdtype == dns.rdatatype.A and \
- message.question[0].rdclass == dns.rdataclass.IN:
- rrs = dns.rrset.from_text(message.question[0].name, 300,
+ if request.qtype == dns.rdatatype.A and \
+ request.qclass == dns.rdataclass.IN:
+ rrs = dns.rrset.from_text(request.qname, 300,
'IN', 'A', '1.2.3.4')
response.answer.append(rrs)
response.set_rcode(dns.rcode.NOERROR)