Author: jelmer Date: 2007-10-15 13:29:05 +0000 (Mon, 15 Oct 2007) New Revision: 25651
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25651 Log: Support <dn> in <ldb> syntax. 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:02 UTC (rev 25650) +++ branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-15 13:29:05 UTC (rev 25651) @@ -301,6 +301,20 @@ ldb_error transaction_start(); ldb_error transaction_commit(); ldb_error transaction_cancel(); + +#ifdef SWIGPYTHON + bool __contains__(ldb_dn *dn) + { + struct ldb_result *result; + + int ret = ldb_search($self, dn, LDB_SCOPE_BASE, NULL, NULL, + &result); + + /* FIXME: Check ret and set exception if necessary */ + + return result->count > 0; + } +#endif } } ldb; 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:02 UTC (rev 25650) +++ branches/4.0-python/source/lib/ldb/tests/python/api.py 2007-10-15 13:29:05 UTC (rev 25651) @@ -32,6 +32,17 @@ l = ldb.Ldb("foo.tdb") self.assertRaises(RuntimeError, lambda: l.delete(ldb.Dn(l, "dc=foo"))) + def test_contains(self): + l = ldb.Ldb("foo.tdb") + self.assertFalse(ldb.Dn(l, "dc=foo") in l) + l = ldb.Ldb("foo.tdb") + m = ldb.Message() + m.dn = ldb.Dn(l, "dc=foo") + m["b"] = "a" + l.add(m) + self.assertTrue(ldb.Dn(l, "dc=foo") in l) + l.delete(m.dn) + def test_get_config_basedn(self): l = ldb.Ldb("foo.tdb") self.assertEquals(None, l.get_config_basedn())