]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1484] Tests for python find_all
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Mon, 19 Dec 2011 11:06:56 +0000 (12:06 +0100)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Mon, 19 Dec 2011 11:06:56 +0000 (12:06 +0100)
src/lib/python/isc/datasrc/tests/datasrc_test.py

index d0ab3f02284b31ab42e9c120c4a23d5036a7b2b9..a02f88d9c280aceefda9242a4eed033b76496c32 100644 (file)
@@ -269,6 +269,43 @@ class DataSrcClient(unittest.TestCase):
         self.assertNotEqual(ZoneFinder.WILDCARD_CNAME,
                             ZoneFinder.WILDCARD_NXRRSET)
 
+    def test_findall(self):
+        """
+        A test for the find_all method.
+        """
+        dsc = isc.datasrc.DataSourceClient("sqlite3", READ_ZONE_DB_CONFIG)
+        result, finder = dsc.find_zone(isc.dns.Name("example.com"))
+        self.assertEqual(finder.SUCCESS, result)
+        self.assertEqual(isc.dns.RRClass.IN(), finder.get_class())
+        self.assertEqual("example.com.", finder.get_origin().to_text())
+
+        # Some "failure" responses
+        result, rrset = finder.find_all(isc.dns.Name("www.sql1.example.com"),
+                                        finder.FIND_DEFAULT)
+        self.assertEqual(finder.DELEGATION, result)
+        self.assertEqual("sql1.example.com. 3600 IN NS dns01.example.com.\n" +
+                         "sql1.example.com. 3600 IN NS dns02.example.com.\n" +
+                         "sql1.example.com. 3600 IN NS dns03.example.com.\n",
+                         rrset.to_text())
+
+        result, rrset = finder.find_all(isc.dns.Name("nxdomain.example.com"),
+                                        finder.FIND_DEFAULT)
+        self.assertEqual(finder.NXDOMAIN, result)
+        self.assertIsNone(None, rrset)
+
+        # A success. It should return the list now.
+        result, rrsets = finder.find_all(isc.dns.Name("mix.example.com."))
+        self.assertEqual(ZoneFinder.SUCCESS, result)
+        self.assertEqual(2, len(rrsets))
+        self.assertEqual(sort(map(lambda rrset: rrset.get_type().to_text(),
+                                  rrsets)), sort(["A", "AAAA"]))
+        rdatas = []
+        for rrset in rrsets:
+            rdatas.extend(rrset.get_rdata())
+        self.assertEqual(sort(map(lambda rdata: rdata.to_text(), rdatas)),
+                              sort(["192.0.2.1", "192.0.2.2", "2001:db8::1",
+                                    "2001:db8::2"]))
+
     def test_find(self):
         dsc = isc.datasrc.DataSourceClient("sqlite3", READ_ZONE_DB_CONFIG)