static PyObject *py_ldb_dn_get_parent(PyLdbDnObject *self)
{
struct ldb_dn *dn = PyLdbDn_AsDn((PyObject *)self);
- return PyLdbDn_FromDn(ldb_dn_get_parent(NULL, dn));
+ struct ldb_dn *parent;
+
+ parent = ldb_dn_get_parent(NULL, dn);
+
+ if (parent == NULL) {
+ Py_RETURN_NONE;
+ } else {
+ return PyLdbDn_FromDn(parent);
+ }
}
#define dn_ldb_ctx(dn) ((struct ldb_context *)dn)
return os.tempnam()
class NoContextTests(unittest.TestCase):
+
def test_valid_attr_name(self):
self.assertTrue(ldb.valid_attr_name("foo"))
self.assertFalse(ldb.valid_attr_name("24foo"))
class SimpleLdb(unittest.TestCase):
+
def test_connect(self):
ldb.Ldb(filename())
class DnTests(unittest.TestCase):
+
def setUp(self):
self.ldb = ldb.Ldb(filename())
x = ldb.Dn(self.ldb, "dc=foo,bar=bloe")
self.assertEquals("bar=bloe", x.parent().__str__())
+ def test_parent_nonexistant(self):
+ x = ldb.Dn(self.ldb, "@BLA")
+ self.assertEquals(None, x.parent())
+
def test_compare(self):
x = ldb.Dn(self.ldb, "dc=foo,bar=bloe")
y = ldb.Dn(self.ldb, "dc=foo,bar=bloe")
class LdbMsgTests(unittest.TestCase):
+
def setUp(self):
self.msg = ldb.Message()
class MessageElementTests(unittest.TestCase):
+
def test_cmp_element(self):
x = ldb.MessageElement(["foo"])
y = ldb.MessageElement(["foo"])
class ModuleTests(unittest.TestCase):
+
def test_register_module(self):
class ExampleModule:
name = "example"
l = ldb.Ldb("usemodule.ldb")
self.assertEquals(["init"], ops)
+
if __name__ == '__main__':
import unittest
unittest.TestProgram()