Author: jelmer Date: 2007-10-14 18:54:46 +0000 (Sun, 14 Oct 2007) New Revision: 25636
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25636 Log: Implement + for dn's, canonical_str() and canonical_ex_str(). 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:39:39 UTC (rev 25635) +++ branches/4.0-python/source/lib/ldb/swig/ldb.i 2007-10-14 18:54:46 UTC (rev 25636) @@ -155,6 +155,22 @@ int get_comp_num(); bool add_child(ldb_dn *child); bool add_base(ldb_dn *base); + const char *canonical_str() { + return ldb_dn_canonical_string($self, $self); + } + const char *canonical_ex_str() { + return ldb_dn_canonical_ex_string($self, $self); + } +#ifdef SWIGPYTHON + ldb_dn *__add__(ldb_dn *other) + { + ldb_dn *ret = ldb_dn_copy(NULL, $self); + ldb_dn_add_child(ret, other); + return ret; + } + + /* FIXME: implement __getslice__ */ +#endif } } ldb_dn; @@ -182,6 +198,7 @@ return NULL; } + /* Python << 2.5 doesn't have PySet_New and PySet_Add. */ result = PyObject_CallObject(&PySet_Type, NULL); for (i = 0; i < ret->num_values; i++) { 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:39:39 UTC (rev 25635) +++ branches/4.0-python/source/lib/ldb/tests/python/api.py 2007-10-14 18:54:46 UTC (rev 25636) @@ -103,6 +103,20 @@ self.assertTrue(x.add_base(ldb.Dn(self.ldb, "bla=bloe"))) self.assertEquals("dc=foo,bar=bloe,bla=bloe", x.__str__()) + def test_add(self): + x = ldb.Dn(self.ldb, "dc=foo") + y = ldb.Dn(self.ldb, "bar=bla") + self.assertEquals("dc=foo,bar=bla", str(y + x)) + + def test_canonical_string(self): + x = ldb.Dn(self.ldb, "dc=foo,bar=bloe") + self.assertEquals("/bloe/foo", x.canonical_str()) + + def test_canonical_ex_string(self): + x = ldb.Dn(self.ldb, "dc=foo,bar=bloe") + self.assertEquals("/bloe\nfoo", x.canonical_ex_str()) + + class LdbMsgTests(unittest.TestCase): def setUp(self): self.msg = ldb.Message()
