Author: jelmer
Date: 2007-10-15 13:29:11 +0000 (Mon, 15 Oct 2007)
New Revision: 25653

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25653

Log:
Support passing in arrays of attribute names.
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-15 13:29:08 UTC 
(rev 25652)
+++ branches/4.0-python/source/lib/ldb/swig/ldb.i       2007-10-15 13:29:11 UTC 
(rev 25653)
@@ -112,6 +112,24 @@
         );
     }
 }
+
+%typemap(in, numinputs=1) const char * const *attrs {
+    /* FIXME: read $input and convert to $1 */
+    if ($input == Py_None) {
+        $1 = NULL;
+    } else if (PySequence_Check($input)) {
+        int i;
+        $1 = talloc_array(NULL, const char *, PySequence_Size($input));
+        for(i = 0; i < PySequence_Size($input); i++)
+            $1[i] = PyString_AsString(PySequence_GetItem($input, i));
+    } else {
+        SWIG_exception(SWIG_TypeError, "expected sequence");
+    }
+}
+
+%typemap(freearg) const char * const *attrs {
+    talloc_free($1);
+}
 #endif
 
 %types(struct ldb_result *);

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-15 
13:29:08 UTC (rev 25652)
+++ branches/4.0-python/source/lib/ldb/tests/python/api.py      2007-10-15 
13:29:11 UTC (rev 25653)
@@ -28,6 +28,10 @@
         l = ldb.Ldb("foo.tdb")
         self.assertEquals(len(l.search()), 1)
 
+    def test_search_attrs(self):
+        l = ldb.Ldb("foo.tdb")
+        self.assertEquals(len(l.search(ldb.Dn(l, ""), ldb.SCOPE_SUBTREE, 
"(dc=*)", ["dc"])), 0)
+
     def test_search_scope_base(self):
         l = ldb.Ldb("foo.tdb")
         self.assertEquals(len(l.search(ldb.Dn(l, "dc=foo"), 

Reply via email to