[svn] commit: r3345 - in /branches/trac375/src/lib/datasrc/python: pydatasrc.cc tests/pydatasrc_test.py
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Oct 25 09:21:16 UTC 2010
Author: jelte
Date: Mon Oct 25 09:21:16 2010
New Revision: 3345
Log:
make the find_ functions return the flags value as well, and check it in the tests
Modified:
branches/trac375/src/lib/datasrc/python/pydatasrc.cc
branches/trac375/src/lib/datasrc/python/tests/pydatasrc_test.py
Modified: branches/trac375/src/lib/datasrc/python/pydatasrc.cc
==============================================================================
--- branches/trac375/src/lib/datasrc/python/pydatasrc.cc (original)
+++ branches/trac375/src/lib/datasrc/python/pydatasrc.cc Mon Oct 25 09:21:16 2010
@@ -119,9 +119,17 @@
"RRClass rrclass: The class of the RRset to find\n"
"RRType rrtype: The type of the RRset to find\n"
"List result: The results are added to this list\n"
- "int flags: Contains result flags after this function completes\n"
- "Name zonename: The name of the zone\n"
- "Returns DataSrc.SUCCESS on success, error value otherwise\n"
+ "Name zonename: The name of the zone\n\n"
+ "Returns a tuple (result, flags), where result is\n"
+ "SUCCESS, ERROR, or NOT_IMPLEMENTED, and flags is either 0\n"
+ "or a bitwise OR of the following possible values:\n"
+ "REFERRAL: The node contains an NS record\n"
+ "CNAME_FOUND: The node contains a CNAME record\n"
+ "NAME_NOT_FOUND: The node does not exist in the data source.\n"
+ "TYPE_NOT_FOUND: The node does not contain the requested RRType\n"
+ "NO_SUCH_ZONE: The zone does not exist in this data source.\n"
+ "DATA_NOT_FOUND: A combination of the last three, for coding\n"
+ " convenience.\n"
},
{ "find_exact_rrset", reinterpret_cast<PyCFunction>(DataSrc_findExactRRset), METH_VARARGS,
"Searches the datasource for a specific RRset\n"
@@ -130,9 +138,8 @@
"RRClass rrclass: The class of the RRset to find\n"
"RRType rrtype: The type of the RRset to find\n"
"List result: The results are added to this list\n"
- "int flags: Contains result flags after this function completes\n"
"Name zonename: The name of the zone\n\n"
- "Returns DataSrc.SUCCESS on success, error value otherwise\n"
+ "Returns a tuple (result, flags), see find_rrset().\n"
},
{ "find_addrs", reinterpret_cast<PyCFunction>(DataSrc_findAddrs), METH_VARARGS,
"Searches the datasource for an address list\n"
@@ -140,9 +147,8 @@
"Name name: The name of the RRsets to find\n"
"RRClass rrclass: The class of the RRsets to find\n"
"List result: The results are added to this list\n"
- "int flags: Contains result flags after this function completes\n"
"Name zonename: The name of the zone\n\n"
- "Returns DataSrc.SUCCESS on success, error value otherwise\n"
+ "Returns a tuple (result, flags), see find_rrset().\n"
},
{ "find_referral", reinterpret_cast<PyCFunction>(DataSrc_findReferral), METH_VARARGS,
"Searches the datasource for a referral.\n"
@@ -150,9 +156,8 @@
"Name name: The name of the RRsets to find\n"
"RRClass rrclass: The class of the RRsets to find\n"
"List result: The results are added to this list\n"
- "int flags: Contains result flags after this function completes\n"
"Name zonename: The name of the zone\n\n"
- "Returns DataSrc.SUCCESS on success, error value otherwise\n"
+ "Returns a tuple (result, flags), see find_rrset().\n"
},
{ "find_previous_name", reinterpret_cast<PyCFunction>(DataSrc_findPreviousName), METH_VARARGS,
"Searches the datasource for the previous name.\n"
@@ -716,12 +721,11 @@
PyObject* rrtype_class = PyObject_GetAttrString(po_DNS_module, "RRType");
PyObject *name_obj, *class_obj, *type_obj, *result_list_obj, *zone_name_obj;
uint32_t flags;
- int args_check = PyArg_ParseTuple(args, "O!O!O!OIO!",
+ int args_check = PyArg_ParseTuple(args, "O!O!O!OO!",
name_class, &name_obj,
rrclass_class, &class_obj,
rrtype_class, &type_obj,
&result_list_obj,
- &flags,
name_class, &zone_name_obj);
Py_DECREF(name_class);
Py_DECREF(rrclass_class);
@@ -750,7 +754,7 @@
Py_DECREF(rrset_obj);
}
}
- return (Py_BuildValue("I", result));
+ return (Py_BuildValue("II", result, flags));
} else {
return (NULL);
}
@@ -763,12 +767,11 @@
PyObject* rrtype_class = PyObject_GetAttrString(po_DNS_module, "RRType");
PyObject *name_obj, *class_obj, *type_obj, *result_list_obj, *zone_name_obj;
uint32_t flags;
- int args_check = PyArg_ParseTuple(args, "O!O!O!OIO!",
+ int args_check = PyArg_ParseTuple(args, "O!O!O!OO!",
name_class, &name_obj,
rrclass_class, &class_obj,
rrtype_class, &type_obj,
&result_list_obj,
- &flags,
name_class, &zone_name_obj);
Py_DECREF(name_class);
Py_DECREF(rrclass_class);
@@ -795,7 +798,7 @@
PyList_Append(result_list_obj, rrset_obj);
Py_DECREF(rrset_obj);
}
- return (Py_BuildValue("I", result));
+ return (Py_BuildValue("II", result, flags));
} else {
return (NULL);
}
@@ -807,11 +810,10 @@
PyObject* rrclass_class = PyObject_GetAttrString(po_DNS_module, "RRClass");
PyObject *name_obj, *class_obj, *type_obj, *result_list_obj, *zone_name_obj;
uint32_t flags;
- int args_check = PyArg_ParseTuple(args, "O!O!OIO!",
+ int args_check = PyArg_ParseTuple(args, "O!O!OO!",
name_class, &name_obj,
rrclass_class, &class_obj,
&result_list_obj,
- &flags,
name_class, &zone_name_obj);
Py_DECREF(name_class);
Py_DECREF(rrclass_class);
@@ -836,7 +838,7 @@
PyList_Append(result_list_obj, rrset_obj);
Py_DECREF(rrset_obj);
}
- return (Py_BuildValue("I", result));
+ return (Py_BuildValue("II", result, flags));
} else {
return (NULL);
}
@@ -848,11 +850,10 @@
PyObject* rrclass_class = PyObject_GetAttrString(po_DNS_module, "RRClass");
PyObject *name_obj, *class_obj, *type_obj, *result_list_obj, *zone_name_obj;
uint32_t flags;
- int args_check = PyArg_ParseTuple(args, "O!O!OIO!",
+ int args_check = PyArg_ParseTuple(args, "O!O!OO!",
name_class, &name_obj,
rrclass_class, &class_obj,
&result_list_obj,
- &flags,
name_class, &zone_name_obj);
Py_DECREF(name_class);
Py_DECREF(rrclass_class);
@@ -877,7 +878,7 @@
PyList_Append(result_list_obj, rrset_obj);
Py_DECREF(rrset_obj);
}
- return (Py_BuildValue("I", result));
+ return (Py_BuildValue("II", result, flags));
} else {
return (NULL);
}
@@ -1357,6 +1358,12 @@
PyDict_SetItemString(datasrc_type.tp_dict, "W_NO_SUCH_ZONE", Py_BuildValue("I", DataSrc::W_NO_SUCH_ZONE));
PyDict_SetItemString(datasrc_type.tp_dict, "W_NO_SUCH_DATA", Py_BuildValue("I", DataSrc::W_NO_SUCH_DATA));
+ PyDict_SetItemString(datasrc_type.tp_dict, "REFERRAL", Py_BuildValue("I", DataSrc::REFERRAL));
+ PyDict_SetItemString(datasrc_type.tp_dict, "CNAME_FOUND", Py_BuildValue("I", DataSrc::CNAME_FOUND));
+ PyDict_SetItemString(datasrc_type.tp_dict, "NAME_NOT_FOUND", Py_BuildValue("I", DataSrc::NAME_NOT_FOUND));
+ PyDict_SetItemString(datasrc_type.tp_dict, "TYPE_NOT_FOUND", Py_BuildValue("I", DataSrc::TYPE_NOT_FOUND));
+ PyDict_SetItemString(datasrc_type.tp_dict, "NO_SUCH_ZONE", Py_BuildValue("I", DataSrc::NO_SUCH_ZONE));
+ PyDict_SetItemString(datasrc_type.tp_dict, "DATA_NOT_FOUND", Py_BuildValue("I", DataSrc::DATA_NOT_FOUND));
//
// DataSrcTransaction
//
Modified: branches/trac375/src/lib/datasrc/python/tests/pydatasrc_test.py
==============================================================================
--- branches/trac375/src/lib/datasrc/python/tests/pydatasrc_test.py (original)
+++ branches/trac375/src/lib/datasrc/python/tests/pydatasrc_test.py Mon Oct 25 09:21:16 2010
@@ -69,108 +69,120 @@
def test_find_rrset(self):
self.ds.init("{ \"database_file\": \""+ testdata_path + "/example.org.sqlite3\" }")
result = []
- n = self.ds.find_rrset(Name("www.example.org"), RRClass.IN(), RRType.A(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.org"), RRClass.IN(), RRType.A(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.org. 3600 IN A 192.0.2.1\n", str(result[0]))
result = []
- n = self.ds.find_rrset(Name("doesnotexist.example.org"), RRClass.IN(), RRType.A(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- result = []
- n = self.ds.find_rrset(Name("www.doesnotexist.org"), RRClass.IN(), RRType.A(), result, 0, Name("doesnotexist.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- self.assertRaises(TypeError, self.ds.find_rrset);
+ n, flags = self.ds.find_rrset(Name("doesnotexist.example.org"), RRClass.IN(), RRType.A(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
+ self.assertEqual(0, len(result))
+
+ result = []
+ n, flags = self.ds.find_rrset(Name("www.doesnotexist.org"), RRClass.IN(), RRType.A(), result, Name("doesnotexist.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NO_SUCH_ZONE, flags)
+ self.assertEqual(0, len(result))
+
+ self.assertRaises(TypeError, self.ds.find_rrset)
self.assertRaises(TypeError, self.ds.find_rrset,
Name("www.doesnotexist.org"),
- RRClass.IN(), RRType.A(), 0,
- 0, Name("doesnotexist.org"));
+ RRClass.IN(), RRType.A(),
+ 0, Name("doesnotexist.org"))
def test_find_exact_rrset(self):
self.ds.init("{ \"database_file\": \""+ testdata_path + "/example.org.sqlite3\" }")
result = []
- n = self.ds.find_exact_rrset(Name("www.example.org"), RRClass.IN(), RRType.A(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_exact_rrset(Name("www.example.org"), RRClass.IN(), RRType.A(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.org. 3600 IN A 192.0.2.1\n", str(result[0]))
result = []
- n = self.ds.find_exact_rrset(Name("doesnotexist.example.org"), RRClass.IN(), RRType.A(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- result = []
- n = self.ds.find_exact_rrset(Name("www.doesnotexist.org"), RRClass.IN(), RRType.A(), result, 0, Name("doesnotexist.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- self.assertRaises(TypeError, self.ds.find_exact_rrset);
+ n, flags = self.ds.find_exact_rrset(Name("doesnotexist.example.org"), RRClass.IN(), RRType.A(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
+ self.assertEqual(0, len(result))
+
+ result = []
+ n, flags = self.ds.find_exact_rrset(Name("www.doesnotexist.org"), RRClass.IN(), RRType.A(), result, Name("doesnotexist.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NO_SUCH_ZONE, flags)
+ self.assertEqual(0, len(result))
+
+ self.assertRaises(TypeError, self.ds.find_exact_rrset)
self.assertRaises(TypeError, self.ds.find_exact_rrset,
Name("www.doesnotexist.org"),
- RRClass.IN(), RRType.A(), 0,
- 0, Name("doesnotexist.org"));
+ RRClass.IN(), RRType.A(),
+ 0, Name("doesnotexist.org"))
def test_find_addrs(self):
self.ds.init("{ \"database_file\": \""+ testdata_path + "/example.org.sqlite3\" }")
result = []
- n = self.ds.find_addrs(Name("www.example.org"), RRClass.IN(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.org"), RRClass.IN(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.org. 3600 IN A 192.0.2.1\n", str(result[0]))
result = []
- n = self.ds.find_addrs(Name("doesnotexist.example.org"), RRClass.IN(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- result = []
- n = self.ds.find_addrs(Name("www.doesnotexist.org"), RRClass.IN(), result, 0, Name("doesnotexist.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- self.assertRaises(TypeError, self.ds.find_addrs);
+ n, flags = self.ds.find_addrs(Name("doesnotexist.example.org"), RRClass.IN(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
+ self.assertEqual(0, len(result))
+
+ result = []
+ n, flags = self.ds.find_addrs(Name("www.doesnotexist.org"), RRClass.IN(), result, Name("doesnotexist.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NO_SUCH_ZONE, flags)
+ self.assertEqual(0, len(result))
+
+ self.assertRaises(TypeError, self.ds.find_addrs)
self.assertRaises(TypeError, self.ds.find_addrs,
Name("www.doesnotexist.org"),
- RRClass.IN(), 0,
- 0, Name("doesnotexist.org"));
+ RRClass.IN(),
+ 0, Name("doesnotexist.org"))
def test_find_referral(self):
self.ds.init("{ \"database_file\": \""+ testdata_path + "/example.org.sqlite3\" }")
result = []
- n = self.ds.find_referral(Name("sub.example.org"), RRClass.IN(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_referral(Name("sub.example.org"), RRClass.IN(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.REFERRAL, flags)
self.assertEqual(1, len(result))
self.assertEqual("sub.example.org. 3600 IN NS ns.sub.example.org.\n", str(result[0]))
result = []
- n = self.ds.find_referral(Name("doesnotexist.example.org"), RRClass.IN(), result, 0, Name("example.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- result = []
- n = self.ds.find_referral(Name("sub.doesnotexist.org"), RRClass.IN(), result, 0, Name("doesnotexist.org"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- self.assertRaises(TypeError, self.ds.find_referral);
+ n, flags = self.ds.find_referral(Name("doesnotexist.example.org"), RRClass.IN(), result, Name("example.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
+ self.assertEqual(0, len(result))
+
+ result = []
+ n, flags = self.ds.find_referral(Name("sub.doesnotexist.org"), RRClass.IN(), result, Name("doesnotexist.org"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NO_SUCH_ZONE, flags)
+ self.assertEqual(0, len(result))
+
+ self.assertRaises(TypeError, self.ds.find_referral)
self.assertRaises(TypeError, self.ds.find_referral,
Name("sub.doesnotexist.org"),
- RRClass.IN(), 0,
- 0, Name("doesnotexist.org"));
+ RRClass.IN(),
+ 0, Name("doesnotexist.org"))
def test_find_previous_name(self):
self.ds.init("{ \"database_file\": \""+ testdata_path + "/test.sqlite3\" }")
result, result_name = self.ds.find_previous_name(Name("yyy.sql1.example.com"), Name("sql1.example.com"))
- self.assertEqual(DataSrc.SUCCESS, result);
- self.assertEqual("www.sql1.example.com.", result_name.to_text());
+ self.assertEqual(DataSrc.SUCCESS, result)
+ self.assertEqual("www.sql1.example.com.", result_name.to_text())
result, result_name = self.ds.find_previous_name(Name("www.nosuch.zone"), Name("nosuch.zone"))
- self.assertEqual(DataSrc.ERROR, result);
- self.assertEqual(None, result_name);
+ self.assertEqual(DataSrc.ERROR, result)
+ self.assertEqual(None, result_name)
self.assertRaises(TypeError, self.ds.find_previous_name)
@@ -178,7 +190,7 @@
self.ds.init("{ \"database_file\": \""+ testdata_path + "/test.sqlite3\" }")
hashstr = "1BB7SO0452U1QHL98UISNDD9218GELR5";
- nsec3_zonename = Name("sql2.example.com");
+ nsec3_zonename = Name("sql2.example.com")
result_rrsets = []
result = self.ds.find_covering_nsec3(nsec3_zonename, hashstr, result_rrsets)
@@ -241,8 +253,9 @@
# check for nonexistence again, then add it and commit
# finally check if exists
result = []
- n = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
self.assertEqual(0, len(result))
rrset.add_rdata(Rdata(rrset.get_type(), rrset.get_class(), "192.0.2.1"))
@@ -252,8 +265,9 @@
self.ds.rollback_transaction(transaction)
result = []
- n = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
self.assertEqual(0, len(result))
def test_add_rrset_commit(self):
@@ -261,8 +275,9 @@
rrset.add_rdata(Rdata(rrset.get_type(), rrset.get_class(), "192.0.2.1"))
result = []
- n = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
self.assertEqual(0, len(result))
transaction = DataSrcTransaction(self.ds, Name("example.com"), RRClass.IN())
@@ -274,8 +289,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("added.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("added.example.com. 3600 IN A 192.0.2.1\n", str(result[0]))
@@ -293,8 +309,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
result = self.ds.del_rrset(transaction, rrset)
@@ -303,8 +320,9 @@
self.ds.rollback_transaction(transaction)
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertRaises(TypeError, self.ds.rollback_transaction)
@@ -314,8 +332,9 @@
rrset.add_rdata(Rdata(rrset.get_type(), rrset.get_class(), "192.0.2.1"))
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
transaction = DataSrcTransaction(self.ds, Name("example.com"), RRClass.IN())
@@ -327,8 +346,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
# there's still other data, so we should get a list of 1 empty
# rrset
self.assertEqual(1, len(result))
@@ -340,8 +360,9 @@
rrset = RRset(Name("www.example.com"), RRClass.IN(), RRType.ANY(), RRTTL(3600))
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
transaction = DataSrcTransaction(self.ds, Name("example.com"), RRClass.IN())
@@ -353,8 +374,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
self.assertEqual(0, len(result))
def test_del_zone(self):
@@ -369,8 +391,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NO_SUCH_ZONE, flags)
self.assertEqual(0, len(result))
transaction = DataSrcTransaction(self.ds, Name("example.com"), RRClass.IN())
@@ -385,13 +408,15 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(1, len(result))
-
- result = []
- n = self.ds.find_rrset(Name("example.com"), RRClass.IN(), RRType.SOA(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
+ self.assertEqual(1, len(result))
+
+ result = []
+ n, flags = self.ds.find_rrset(Name("example.com"), RRClass.IN(), RRType.SOA(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.REFERRAL, flags)
self.assertEqual(1, len(result))
rrset1 = result[0]
@@ -413,8 +438,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
self.assertEqual(0, len(result))
def test_replace_zone_list_new_zone(self):
@@ -439,13 +465,15 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(1, len(result))
-
- result = []
- n = self.ds.find_rrset(Name("example.com"), RRClass.IN(), RRType.SOA(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
+ self.assertEqual(1, len(result))
+
+ result = []
+ n, flags = self.ds.find_rrset(Name("example.com"), RRClass.IN(), RRType.SOA(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.REFERRAL, flags)
self.assertEqual(1, len(result))
rrset1 = result[0]
@@ -463,12 +491,14 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
- self.assertEqual(0, len(result))
-
- n = self.ds.find_rrset(Name("added.example.com"), RRClass.IN(), RRType.A(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_rrset(Name("www.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(DataSrc.NAME_NOT_FOUND, flags)
+ self.assertEqual(0, len(result))
+
+ n, flags = self.ds.find_rrset(Name("added.example.com"), RRClass.IN(), RRType.A(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
def test_replace_zone_function_not_rrset(self):
@@ -562,8 +592,9 @@
rrsets = rrsets_from_file(testdata_path + "/ixfr_ok.rrs")
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.com. 3600 IN A 192.0.2.1\n", str(result[0]))
@@ -578,8 +609,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.com. 3600 IN A 192.0.2.3\n", str(result[0]))
@@ -596,8 +628,9 @@
rrsets = rrsets_from_file(testdata_path + "/ixfr_ok.rrs")
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.com. 3600 IN A 192.0.2.1\n", str(result[0]))
@@ -612,8 +645,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.com. 3600 IN A 192.0.2.3\n", str(result[0]))
@@ -655,8 +689,9 @@
rrsets = rrsets_from_file(testdata_path + "/ixfr_bad_remove_nonexisting.rrs")
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.com. 3600 IN A 192.0.2.1\n", str(result[0]))
@@ -674,8 +709,9 @@
self.assertEqual(DataSrc.W_SUCCESS, result)
result = []
- n = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, 0, Name("example.com"))
- self.assertEqual(DataSrc.SUCCESS, n);
+ n, flags = self.ds.find_addrs(Name("www.example.com"), RRClass.IN(), result, Name("example.com"))
+ self.assertEqual(DataSrc.SUCCESS, n)
+ self.assertEqual(0, flags)
self.assertEqual(1, len(result))
self.assertEqual("www.example.com. 3600 IN A 192.0.2.1\n", str(result[0]))
@@ -706,10 +742,10 @@
def install_writable_database():
return os.system(testdata_install_prog + " " + testdata_path +
"/test.sqlite3 " + testdata_out_path +
- "/write_test.sqlite3" );
+ "/write_test.sqlite3" )
def remove_writable_database():
- return os.remove(testdata_out_path + "/write_test.sqlite3" );
+ return os.remove(testdata_out_path + "/write_test.sqlite3" )
def rrsets_from_file(filename):
rrsets = []
More information about the bind10-changes
mailing list