svn commit: samba r25639 - in branches/4.0-python: .
source/lib/ldb/swig source/lib/ldb/tests/python
jelmer at samba.org
jelmer at samba.org
Sun Oct 14 22:28:46 GMT 2007
Author: jelmer
Date: 2007-10-14 22:28:45 +0000 (Sun, 14 Oct 2007)
New Revision: 25639
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25639
Log:
Test rename, search scopes, fix segfault, support optional parameter to LdbDn.
Modified:
branches/4.0-python/
branches/4.0-python/source/lib/ldb/swig/ldb.i
branches/4.0-python/source/lib/ldb/tests/python/api.py
Changeset:
Property changes on: branches/4.0-python
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...
Modified: branches/4.0-python/source/lib/ldb/swig/ldb.i
===================================================================
--- branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-14 20:50:17 UTC (rev 25638)
+++ branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-14 22:28:45 UTC (rev 25639)
@@ -1,4 +1,4 @@
-/*
+/*
Unix SMB/CIFS implementation.
Swig interface to ldb.
@@ -179,7 +179,11 @@
ldb_dn *dn;
%extend {
- ldb_msg() { return ldb_msg_new(NULL); }
+ ldb_msg(ldb_dn *dn = NULL) {
+ ldb_msg *ret = ldb_msg_new(NULL);
+ ret->dn = talloc_reference(ret, dn);
+ return ret;
+ }
~ldb_msg() { talloc_free($self); }
#ifdef SWIGPYTHON
@@ -207,7 +211,7 @@
void __setitem__(const char *attr_name, PyObject *set_obj)
{
- struct ldb_message_element *me = talloc(NULL,
+ struct ldb_message_element *me = talloc($self,
struct ldb_message_element);
ldb_msg_remove_attr($self, attr_name);
me->flags =0 ;
@@ -231,7 +235,6 @@
me->values[0].data = PyString_AsString(set_obj);
}
ldb_msg_add($self, me, 0);
- talloc_free(me);
}
unsigned int __len__() { return $self->num_elements; }
Modified: branches/4.0-python/source/lib/ldb/tests/python/api.py
===================================================================
--- branches/4.0-python/source/lib/ldb/tests/python/api.py 2007-10-14 20:50:17 UTC (rev 25638)
+++ branches/4.0-python/source/lib/ldb/tests/python/api.py 2007-10-14 22:28:45 UTC (rev 25639)
@@ -23,6 +23,11 @@
l = ldb.Ldb("foo.tdb")
self.assertEquals(len(l.search()), 1)
+ def test_search_scope_base(self):
+ l = ldb.Ldb("foo.tdb")
+ self.assertEquals(len(l.search(ldb.Dn(l, "dc=foo"),
+ ldb.LDB_SCOPE_ONELEVEL)), 0)
+
def test_delete(self):
l = ldb.Ldb("foo.tdb")
self.assertRaises(RuntimeError, lambda: l.delete(ldb.Dn(l, "dc=foo")))
@@ -47,11 +52,23 @@
l = ldb.Ldb("foo.tdb")
m = ldb.Message()
m.dn = ldb.Dn(l, "dc=foo")
- m["bla"] = "bla"
+ m["bla"] = set("bla")
self.assertEquals(len(l.search()), 1)
l.add(m)
self.assertEquals(len(l.search()), 2)
+ l.delete(ldb.Dn(l, "dc=foo"))
+ def test_rename(self):
+ l = ldb.Ldb("foo.tdb")
+ m = ldb.Message()
+ m.dn = ldb.Dn(l, "dc=foo")
+ m["bla"] = set("bla")
+ self.assertEquals(len(l.search()), 1)
+ l.add(m)
+ l.rename(ldb.Dn(l, "dc=foo"), ldb.Dn(l, "dc=bar"))
+ self.assertEquals(len(l.search()), 2)
+ l.delete(ldb.Dn(l, "dc=bar"))
+
class DnTests(unittest.TestCase):
def setUp(self):
self.ldb = ldb.Ldb("foo.tdb")
@@ -133,6 +150,10 @@
def setUp(self):
self.msg = ldb.Message()
+ def test_init_dn(self):
+ self.msg = ldb.Message(ldb.Dn(ldb.Ldb(), "dc=foo"))
+ self.assertEquals("dc=foo", str(self.msg.dn))
+
def test_len(self):
self.assertEquals(0, len(self.msg))
More information about the samba-cvs
mailing list