diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-01-11 01:55:56 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-01-11 01:55:56 +0100 |
commit | 2466d2cc5e210a124bb23cb9d2c8d3cc608a7c7f (patch) | |
tree | f02c25c7fff97af57ccfc6f47362b5acaef0d587 /source4/lib/ldb/ldb.py | |
parent | c3695026e1cfac3e835e937ed9343d82500cf197 (diff) | |
download | samba-2466d2cc5e210a124bb23cb9d2c8d3cc608a7c7f.tar.gz samba-2466d2cc5e210a124bb23cb9d2c8d3cc608a7c7f.tar.bz2 samba-2466d2cc5e210a124bb23cb9d2c8d3cc608a7c7f.zip |
ldb/python: Allow comparing a MessageElement to a list or a singleton.
(This used to be commit 1ccbab81d79f83bb419104f2bbaf2ae7b368e90f)
Diffstat (limited to 'source4/lib/ldb/ldb.py')
-rw-r--r-- | source4/lib/ldb/ldb.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source4/lib/ldb/ldb.py b/source4/lib/ldb/ldb.py index 2d037f080c..6aacc8c09c 100644 --- a/source4/lib/ldb/ldb.py +++ b/source4/lib/ldb/ldb.py @@ -101,12 +101,15 @@ class ldb_msg_element(object): return ret def __eq__(self, other): - if (isinstance(other, str) and - len(set(self)) == 1 and - set(self).pop() == other): + if (len(self) == 1 and self.get(0) == other): return True - return self.__cmp__(other) == 0 - + if isinstance(other, self.__class__): + return self.__cmp__(other) == 0 + o = iter(other) + for i in range(len(self)): + if self.get(i) != o.next(): + return False + return True ldb_msg_element.__iter__ = new_instancemethod(_ldb.ldb_msg_element___iter__,None,ldb_msg_element) ldb_msg_element.__set__ = new_instancemethod(_ldb.ldb_msg_element___set__,None,ldb_msg_element) |