|
@@ -727,7 +727,7 @@ class TestXfroutSession(TestXfroutSessionBase):
|
|
|
self.getmsg(), TEST_ZONE_NAME, TEST_RRCLASS), Rcode.NOERROR())
|
|
|
self.assertEqual(None, self.xfrsess._iterator)
|
|
|
self.assertEqual(None, self.xfrsess._jnl_reader)
|
|
|
-
|
|
|
+
|
|
|
# The data source doesn't support journaling. Should fallback to AXFR.
|
|
|
zone_name = Name('nojournal.example.com')
|
|
|
self.mdata = self.create_request_data(ixfr=IXFR_OK_VERSION,
|
|
@@ -1070,6 +1070,20 @@ class TestXfroutSessionWithSQLite3(TestXfroutSessionBase):
|
|
|
self.assertEqual(Rcode.NOERROR(), response.get_rcode())
|
|
|
self.check_axfr_stream(response)
|
|
|
|
|
|
+ def test_ixfr_to_axfr(self):
|
|
|
+ self.xfrsess._request_data = \
|
|
|
+ self.create_request_data(ixfr=IXFR_NG_VERSION)
|
|
|
+ XfroutSession._handle(self.xfrsess)
|
|
|
+ response = self.sock.read_msg(Message.PRESERVE_ORDER);
|
|
|
+ self.assertEqual(Rcode.NOERROR(), response.get_rcode())
|
|
|
+ # The SOA serial is greater than that of requested one.
|
|
|
+ # So only the SOA was send.
|
|
|
+ answers = response.get_section(Message.SECTION_ANSWER)
|
|
|
+ self.assertEqual(1, len(answers))
|
|
|
+ self.assertTrue(rrsets_equal(create_soa(SOA_CURRENT_VERSION),
|
|
|
+ answers[0]))
|
|
|
+ self.assertEqual(RRType.IXFR(), response.get_question()[0].get_type())
|
|
|
+
|
|
|
def test_ixfr_normal_session(self):
|
|
|
# See testdata/creatediff.py. There are 8 changes between two
|
|
|
# versions. So the answer section should contain all of these and
|
|
@@ -1077,7 +1091,7 @@ class TestXfroutSessionWithSQLite3(TestXfroutSessionBase):
|
|
|
self.xfrsess._request_data = \
|
|
|
self.create_request_data(ixfr=IXFR_OK_VERSION)
|
|
|
XfroutSession._handle(self.xfrsess)
|
|
|
- response = self.sock.read_msg(Message.PRESERVE_ORDER);
|
|
|
+ response = self.sock.read_msg(Message.PRESERVE_ORDER)
|
|
|
actual_records = response.get_section(Message.SECTION_ANSWER)
|
|
|
expected_records = [create_soa(2011112001), create_soa(2011111802),
|
|
|
create_soa(2011111900),
|