summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBrian Wellington <bwelling@xbill.org>2020-06-29 14:55:35 -0700
committerBrian Wellington <bwelling@xbill.org>2020-06-30 08:33:19 -0700
commitb6671fe2367507a29a55d0b4255325b73fffe6be (patch)
tree14e20b691d356986c5703c0868ae824983297458 /tests
parent8c6ba9e62fce0b7acaa1995f57b36908f9277684 (diff)
downloaddnspython-b6671fe2367507a29a55d0b4255325b73fffe6be.tar.gz
Store a TSIG rrset on the message object.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_renderer.py19
-rw-r--r--tests/test_tsig.py8
2 files changed, 21 insertions, 6 deletions
diff --git a/tests/test_renderer.py b/tests/test_renderer.py
index 345ef82..db9d0f3 100644
--- a/tests/test_renderer.py
+++ b/tests/test_renderer.py
@@ -3,9 +3,11 @@
import unittest
import dns.exception
+import dns.flags
import dns.message
import dns.renderer
-import dns.flags
+import dns.tsig
+import dns.tsigkeyring
basic_answer = \
"""flags QR
@@ -35,6 +37,21 @@ class RendererTestCase(unittest.TestCase):
expected.id = message.id
self.assertEqual(message, expected)
+ def test_tsig(self):
+ r = dns.renderer.Renderer(flags=dns.flags.RD, max_size=512)
+ qname = dns.name.from_text('foo.example')
+ r.add_question(qname, dns.rdatatype.A)
+ keyring = dns.tsigkeyring.from_text({'key' : '12345678'})
+ keyname = next(iter(keyring))
+ r.write_header()
+ r.add_tsig(keyname, keyring[keyname], 300, r.id, 0, b'', b'',
+ dns.tsig.HMAC_SHA256)
+ wire = r.get_wire()
+ message = dns.message.from_wire(wire, keyring=keyring)
+ expected = dns.message.make_query(qname, dns.rdatatype.A)
+ expected.id = message.id
+ self.assertEqual(message, expected)
+
def test_going_backwards_fails(self):
r = dns.renderer.Renderer(flags=dns.flags.QR, max_size=512)
qname = dns.name.from_text('foo.example')
diff --git a/tests/test_tsig.py b/tests/test_tsig.py
index 037d5aa..2722e15 100644
--- a/tests/test_tsig.py
+++ b/tests/test_tsig.py
@@ -42,12 +42,11 @@ class TSIGTestCase(unittest.TestCase):
# not raising is passing
dns.message.from_wire(w, keyring)
- def make_message_pair(self, qname='example', rdtype='A'):
+ def make_message_pair(self, qname='example', rdtype='A', tsig_error=0):
q = dns.message.make_query(qname, rdtype)
q.use_tsig(keyring=keyring, keyname=keyname)
- q.had_tsig = True # so make_response() does the right thing
q.to_wire() # to set q.mac
- r = dns.message.make_response(q)
+ r = dns.message.make_response(q, tsig_error=tsig_error)
return(q, r)
def test_peer_errors(self):
@@ -58,8 +57,7 @@ class TSIGTestCase(unittest.TestCase):
(99, dns.tsig.PeerError),
]
for err, ex in items:
- q, r = self.make_message_pair()
- r.tsig_error = err
+ q, r = self.make_message_pair(tsig_error=err)
w = r.to_wire()
def bad():
dns.message.from_wire(w, keyring=keyring, request_mac=q.mac)