Fix double roster entry issue with Unicode.

JIDs with Unicode values were being encoded by the JID class
instead of leaving them as just Unicode strings.

It may still be a good idea to use

    from __future__ import unicode_literals

pretty much everywhere though.

Fixes issue #88.
This commit is contained in:
Lance Stout
2011-05-20 16:48:13 -04:00
parent 6a07e7cbe3
commit 6b274a2543
3 changed files with 60 additions and 6 deletions

View File

@@ -6,6 +6,8 @@
See the file LICENSE for copying permission.
"""
from __future__ import unicode_literals
class JID(object):
"""
@@ -42,7 +44,9 @@ class JID(object):
Arguments:
jid - The new JID value.
"""
self._full = self._jid = str(jid)
if isinstance(jid, JID):
jid = jid.full
self._full = self._jid = jid
self._domain = None
self._resource = None
self._user = None
@@ -123,10 +127,11 @@ class JID(object):
return self.full
def __repr__(self):
return str(self)
return self.full
def __eq__(self, other):
"""
Two JIDs are considered equal if they have the same full JID value.
"""
return str(other) == str(self)
other = JID(other)
return self.full == other.full