|
@@ -19,17 +19,18 @@ from isc.dns import *
|
|
|
from isc.ddns.session import *
|
|
|
|
|
|
|
|
|
-TEST_ZONE = Name('example.com')
|
|
|
+TEST_ZONE_NAME = Name('example.com')
|
|
|
UPDATE_RRTYPE = RRType.SOA()
|
|
|
TEST_RRCLASS = RRClass.IN()
|
|
|
+TEST_ZONE_RECORD = Question(TEST_ZONE_NAME, TEST_RRCLASS, UPDATE_RRTYPE)
|
|
|
|
|
|
-def create_update_msg(zone_name=TEST_ZONE):
|
|
|
+def create_update_msg(zones=[TEST_ZONE_RECORD]):
|
|
|
msg = Message(Message.RENDER)
|
|
|
msg.set_qid(5353)
|
|
|
msg.set_opcode(Opcode.UPDATE())
|
|
|
msg.set_rcode(Rcode.NOERROR())
|
|
|
- if zone_name is not None:
|
|
|
- msg.add_question(Question(zone_name, TEST_RRCLASS, UPDATE_RRTYPE))
|
|
|
+ for z in zones:
|
|
|
+ msg.add_question(z)
|
|
|
|
|
|
renderer = MessageRenderer()
|
|
|
msg.to_wire(renderer)
|
|
@@ -44,7 +45,7 @@ class SessionTest(unittest.TestCase):
|
|
|
'''Session tests'''
|
|
|
def setUp(self):
|
|
|
self.__client_addr = ('192.0.2.1', 53)
|
|
|
- self.__update_msgdata, self.__update_msg = create_update_msg(TEST_ZONE)
|
|
|
+ self.__update_msgdata, self.__update_msg = create_update_msg()
|
|
|
self.__session = UpdateSession(self.__update_msg,
|
|
|
self.__update_msgdata,
|
|
|
self.__client_addr, None)
|
|
@@ -62,7 +63,22 @@ class SessionTest(unittest.TestCase):
|
|
|
|
|
|
def test_broken_request(self):
|
|
|
|
|
|
- msg_data, msg = create_update_msg(zone_name=None)
|
|
|
+ msg_data, msg = create_update_msg(zones=[])
|
|
|
+ session = UpdateSession(msg, msg_data, None, None)
|
|
|
+ self.assertEqual(UPDATE_DONE, session.handle())
|
|
|
+ self.check_response(session.get_message(), Rcode.FORMERR())
|
|
|
+
|
|
|
+
|
|
|
+ msg_data, msg = create_update_msg(zones=[TEST_ZONE_RECORD,
|
|
|
+ TEST_ZONE_RECORD])
|
|
|
+ session = UpdateSession(msg, msg_data, None, None)
|
|
|
+ self.assertEqual(UPDATE_DONE, session.handle())
|
|
|
+ self.check_response(session.get_message(), Rcode.FORMERR())
|
|
|
+
|
|
|
+
|
|
|
+ msg_data, msg = create_update_msg(zones=[Question(TEST_ZONE_NAME,
|
|
|
+ TEST_RRCLASS,
|
|
|
+ RRType.A())])
|
|
|
session = UpdateSession(msg, msg_data, None, None)
|
|
|
self.assertEqual(UPDATE_DONE, session.handle())
|
|
|
self.check_response(session.get_message(), Rcode.FORMERR())
|