svn commit: samba r25638 - 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 20:50:18 GMT 2007
Author: jelmer
Date: 2007-10-14 20:50:17 +0000 (Sun, 14 Oct 2007)
New Revision: 25638
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25638
Log:
Convert return codes to exceptions.
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 18:57:47 UTC (rev 25637)
+++ branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-14 20:50:17 UTC (rev 25638)
@@ -45,6 +45,7 @@
typedef struct ldb_message ldb_msg;
typedef struct ldb_context ldb;
typedef struct ldb_dn ldb_dn;
+typedef int ldb_error;
%}
@@ -70,6 +71,7 @@
"ldb context must be non-NULL");
}
+
/*
* Wrap a small bit of talloc
*/
@@ -249,6 +251,11 @@
%rename(Ldb) ldb;
/* Top-level ldb operations */
typedef struct ldb_context {
+ %typemap(out) ldb_error {
+ if ($1 != LDB_SUCCESS)
+ SWIG_exception(SWIG_RuntimeError, ldb_strerror($1));
+ $result = Py_None;
+ };
%extend {
ldb(const char *url=NULL, unsigned int flags = 0,
const char *options[] = NULL)
@@ -270,18 +277,18 @@
return NULL;
}
- int connect(const char *url, unsigned int flags = 0,
+ ldb_error connect(const char *url, unsigned int flags = 0,
const char *options[] = NULL);
~ldb() { talloc_free($self); }
- int search(ldb_dn *base = NULL,
+ ldb_error search(ldb_dn *base = NULL,
enum ldb_scope scope = LDB_SCOPE_DEFAULT,
const char *expression = NULL,
const char * const *attrs = NULL,
struct ldb_result **OUT);
- int delete(ldb_dn *dn);
- int rename(ldb_dn *olddn, ldb_dn *newdn);
- int add(ldb_msg *message);
+ ldb_error delete(ldb_dn *dn);
+ ldb_error rename(ldb_dn *olddn, ldb_dn *newdn);
+ ldb_error add(ldb_msg *message);
ldb_dn *get_config_basedn();
ldb_dn *get_root_basedn();
ldb_dn *get_schema_basedn();
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 18:57:47 UTC (rev 25637)
+++ branches/4.0-python/source/lib/ldb/tests/python/api.py 2007-10-14 20:50:17 UTC (rev 25638)
@@ -25,7 +25,7 @@
def test_delete(self):
l = ldb.Ldb("foo.tdb")
- l.delete(ldb.Dn(l, "dc=foo"))
+ self.assertRaises(RuntimeError, lambda: l.delete(ldb.Dn(l, "dc=foo")))
def test_get_config_basedn(self):
l = ldb.Ldb("foo.tdb")
@@ -43,6 +43,14 @@
l = ldb.Ldb("foo.tdb")
self.assertEquals(None, l.get_default_basedn())
+ def test_add(self):
+ l = ldb.Ldb("foo.tdb")
+ m = ldb.Message()
+ m.dn = ldb.Dn(l, "dc=foo")
+ m["bla"] = "bla"
+ self.assertEquals(len(l.search()), 1)
+ l.add(m)
+ self.assertEquals(len(l.search()), 2)
class DnTests(unittest.TestCase):
def setUp(self):
More information about the samba-cvs
mailing list