|
@@ -52,6 +52,11 @@ class ClientListTest(unittest.TestCase):
|
|
|
clist = isc.datasrc.ConfigurableClientList(isc.dns.RRClass.IN())
|
|
|
# This should be NOP now
|
|
|
clist.configure("[]", True)
|
|
|
+ # Check the zone is not there yet
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("example.org"))
|
|
|
+ self.assertIsNone(dsrc)
|
|
|
+ self.assertIsNone(finder)
|
|
|
+ self.assertFalse(exact)
|
|
|
# We can use this type, as it is not loaded dynamically.
|
|
|
clist.configure('''[{
|
|
|
"type": "MasterFiles",
|
|
@@ -60,6 +65,14 @@ class ClientListTest(unittest.TestCase):
|
|
|
},
|
|
|
"cache-enable": true
|
|
|
}]''', True)
|
|
|
+ # Check the zone is there now. Proper tests of find are in other
|
|
|
+ # test methods.
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("example.org"))
|
|
|
+ self.assertIsNotNone(dsrc)
|
|
|
+ self.assertTrue(isinstance(dsrc, isc.datasrc.DataSourceClient))
|
|
|
+ self.assertIsNotNone(finder)
|
|
|
+ self.assertTrue(isinstance(finder, isc.datasrc.ZoneFinder))
|
|
|
+ self.assertTrue(exact)
|
|
|
self.assertRaises(isc.datasrc.Error, clist.configure, '"bad type"',
|
|
|
True)
|
|
|
self.assertRaises(isc.datasrc.Error, clist.configure, '''[{
|
|
@@ -72,6 +85,54 @@ class ClientListTest(unittest.TestCase):
|
|
|
self.assertRaises(TypeError, clist.configure, "[]")
|
|
|
self.assertRaises(TypeError, clist.configure, "[]", "true")
|
|
|
|
|
|
+ def test_find(self):
|
|
|
+ """
|
|
|
+ Test the find accepts the right arguments, some of them can be omitted,
|
|
|
+ etc.
|
|
|
+ """
|
|
|
+ clist = isc.datasrc.ConfigurableClientList(isc.dns.RRClass.IN())
|
|
|
+ clist.configure('''[{
|
|
|
+ "type": "MasterFiles",
|
|
|
+ "params": {
|
|
|
+ "example.org": "''' + TESTDATA_PATH + '''example.org.zone"
|
|
|
+ },
|
|
|
+ "cache-enable": true
|
|
|
+ }]''', True)
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("sub.example.org"))
|
|
|
+ self.assertIsNotNone(dsrc)
|
|
|
+ self.assertTrue(isinstance(dsrc, isc.datasrc.DataSourceClient))
|
|
|
+ self.assertIsNotNone(finder)
|
|
|
+ self.assertTrue(isinstance(finder, isc.datasrc.ZoneFinder))
|
|
|
+ # We check an exact match in test_configure already
|
|
|
+ self.assertFalse(exact)
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("sub.example.org"),
|
|
|
+ False)
|
|
|
+ self.assertIsNotNone(dsrc)
|
|
|
+ self.assertTrue(isinstance(dsrc, isc.datasrc.DataSourceClient))
|
|
|
+ self.assertIsNotNone(finder)
|
|
|
+ self.assertTrue(isinstance(finder, isc.datasrc.ZoneFinder))
|
|
|
+ self.assertFalse(exact)
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("sub.example.org"),
|
|
|
+ True)
|
|
|
+ self.assertIsNone(dsrc)
|
|
|
+ self.assertIsNone(finder)
|
|
|
+ self.assertFalse(exact)
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("sub.example.org"),
|
|
|
+ False, False)
|
|
|
+ self.assertIsNotNone(dsrc)
|
|
|
+ self.assertTrue(isinstance(dsrc, isc.datasrc.DataSourceClient))
|
|
|
+ self.assertIsNotNone(finder)
|
|
|
+ self.assertTrue(isinstance(finder, isc.datasrc.ZoneFinder))
|
|
|
+ self.assertFalse(exact)
|
|
|
+ dsrc, finder, exact = clist.find(isc.dns.Name("sub.example.org"),
|
|
|
+ True, False)
|
|
|
+ self.assertIsNone(dsrc)
|
|
|
+ self.assertIsNone(finder)
|
|
|
+ self.assertFalse(exact)
|
|
|
+ # Some invalid inputs
|
|
|
+ self.assertRaises(TypeError, clist.find, "example.org")
|
|
|
+ self.assertRaises(TypeError, clist.find)
|
|
|
+
|
|
|
if __name__ == "__main__":
|
|
|
isc.log.init("bind10")
|
|
|
isc.log.resetUnitTestRootLogger()
|