More JID unit tests.

sleekxmpp.xmlstream.jid now has 100% coverage!
This commit is contained in:
Lance Stout 2010-10-24 19:06:54 -04:00
parent 8aa3d0c047
commit 185d7cf28e
2 changed files with 80 additions and 12 deletions

View file

@ -94,21 +94,15 @@ class JID(object):
elif name in ('server', 'domain', 'host'): elif name in ('server', 'domain', 'host'):
self.domain = value self.domain = value
elif name in ('full', 'jid'): elif name in ('full', 'jid'):
if '@' not in value: self.reset(value)
if '/' in value: self.regenerate()
d, r = value.split('/', 1)
object.__setattr__(self, "_resource", r)
else:
d = value
object.__setattr__(self, "_domain", d)
else:
self.reset(value)
elif name == 'bare': elif name == 'bare':
if '@' in value: if '@' in value:
u, d = value.split('@', 1) u, d = value.split('@', 1)
object.__setattr__(self, "_user", u) object.__setattr__(self, "_user", u)
object.__setattr__(self, "_domain", d) object.__setattr__(self, "_domain", d)
else: else:
object.__setattr__(self, "_user", '')
object.__setattr__(self, "_domain", value) object.__setattr__(self, "_domain", value)
self.regenerate() self.regenerate()
else: else:

View file

@ -6,7 +6,7 @@ class TestJIDClass(SleekTest):
"""Verify that the JID class can parse and manipulate JIDs.""" """Verify that the JID class can parse and manipulate JIDs."""
def testJIDfromfull(self): def testJIDFromFull(self):
"""Test using JID of the form 'user@server/resource/with/slashes'.""" """Test using JID of the form 'user@server/resource/with/slashes'."""
self.check_JID(JID('user@someserver/some/resource'), self.check_JID(JID('user@someserver/some/resource'),
'user', 'user',
@ -30,7 +30,81 @@ class TestJIDClass(SleekTest):
'user@someserver/some/resource', 'user@someserver/some/resource',
'user@someserver/some/resource') 'user@someserver/some/resource')
def testJIDnoresource(self): def testJIDaliases(self):
"""Test changing JID using aliases for domain."""
j = JID('user@someserver/resource')
j.server = 'anotherserver'
self.check_JID(j, domain='anotherserver')
j.host = 'yetanother'
self.check_JID(j, domain='yetanother')
def testJIDSetFullWithUser(self):
"""Test setting the full JID with a user portion."""
j = JID('user@domain/resource')
j.full = 'otheruser@otherdomain/otherresource'
self.check_JID(j,
'otheruser',
'otherdomain',
'otherresource',
'otheruser@otherdomain',
'otheruser@otherdomain/otherresource',
'otheruser@otherdomain/otherresource')
def testJIDFullNoUserWithResource(self):
"""
Test setting the full JID without a user
portion and with a resource.
"""
j = JID('user@domain/resource')
j.full = 'otherdomain/otherresource'
self.check_JID(j,
'',
'otherdomain',
'otherresource',
'otherdomain',
'otherdomain/otherresource',
'otherdomain/otherresource')
def testJIDFullNoUserNoResource(self):
"""
Test setting the full JID without a user
portion and without a resource.
"""
j = JID('user@domain/resource')
j.full = 'otherdomain'
self.check_JID(j,
'',
'otherdomain',
'',
'otherdomain',
'otherdomain',
'otherdomain')
def testJIDBareUser(self):
"""Test setting the bare JID with a user."""
j = JID('user@domain/resource')
j.bare = 'otheruser@otherdomain'
self.check_JID(j,
'otheruser',
'otherdomain',
'resource',
'otheruser@otherdomain',
'otheruser@otherdomain/resource',
'otheruser@otherdomain/resource')
def testJIDBareNoUser(self):
"""Test setting the bare JID without a user."""
j = JID('user@domain/resource')
j.bare = 'otherdomain'
self.check_JID(j,
'',
'otherdomain',
'resource',
'otherdomain',
'otherdomain/resource',
'otherdomain/resource')
def testJIDNoResource(self):
"""Test using JID of the form 'user@domain'.""" """Test using JID of the form 'user@domain'."""
self.check_JID(JID('user@someserver'), self.check_JID(JID('user@someserver'),
'user', 'user',
@ -40,7 +114,7 @@ class TestJIDClass(SleekTest):
'user@someserver', 'user@someserver',
'user@someserver') 'user@someserver')
def testJIDnouser(self): def testJIDNoUser(self):
"""Test JID of the form 'component.domain.tld'.""" """Test JID of the form 'component.domain.tld'."""
self.check_JID(JID('component.someserver'), self.check_JID(JID('component.someserver'),
'', '',