|
@@ -2577,6 +2577,76 @@ class TestXfrin(unittest.TestCase):
|
|
|
self.common_ixfr_setup('refresh', False)
|
|
|
self.assertEqual(RRType.AXFR(), self.xfr.xfrin_started_request_type)
|
|
|
|
|
|
+ def test_memory_zones(self):
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ config = { 'datasources': [
|
|
|
+ { 'type': 'memory',
|
|
|
+ 'class': 'IN',
|
|
|
+ 'zones': [
|
|
|
+ { 'origin': 'example.com',
|
|
|
+ 'filetype': 'sqlite3' },
|
|
|
+ { 'origin': 'example2.com',
|
|
|
+ 'filetype': 'sqlite3' },
|
|
|
+ { 'origin': 'example3.com',
|
|
|
+ 'filetype': 'text' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ { 'type': 'memory',
|
|
|
+ 'class': 'CH',
|
|
|
+ 'zones': [
|
|
|
+ { 'origin': 'example.com',
|
|
|
+ 'filetype': 'sqlite3' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ] }
|
|
|
+
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example2.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example3.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "CH"))
|
|
|
+
|
|
|
+
|
|
|
+ self.xfr._set_memory_zones(config, None)
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example.com", "IN"))
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example2.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example3.com", "IN"))
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example.com", "CH"))
|
|
|
+
|
|
|
+
|
|
|
+ del config['datasources'][1]
|
|
|
+ self.xfr._set_memory_zones(config, None)
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example.com", "IN"))
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example2.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example3.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "CH"))
|
|
|
+
|
|
|
+
|
|
|
+ del config['datasources'][0]['zones'][1]
|
|
|
+ self.xfr._set_memory_zones(config, None)
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example2.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example3.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "CH"))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self.xfr._set_memory_zones({}, None)
|
|
|
+ self.assertTrue(self.xfr._is_memory_zone("example.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example2.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example3.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "CH"))
|
|
|
+
|
|
|
+
|
|
|
+ config['datasources'][0]['zones'] = []
|
|
|
+ self.xfr._set_memory_zones(config, None)
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example2.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example3.com", "IN"))
|
|
|
+ self.assertFalse(self.xfr._is_memory_zone("example.com", "CH"))
|
|
|
+
|
|
|
def raise_interrupt():
|
|
|
raise KeyboardInterrupt()
|
|
|
|