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