summaryrefslogtreecommitdiff
path: root/tests/test_stanza_roster.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2010-10-07 10:58:13 -0400
committerLance Stout <lancestout@gmail.com>2010-10-07 10:58:13 -0400
commit0fffbb82000a1a6c3c23d62fedcbd8e8141f8994 (patch)
tree114c3767ccc13de3d0388b43cd357b90334f469a /tests/test_stanza_roster.py
parent21c32c6e1cfd9b18e4c8320e0796e1d7e4b3f74c (diff)
downloadslixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.tar.gz
slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.tar.bz2
slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.tar.xz
slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.zip
Unit test reorganization.
Moved SleekTest to sleekxmpp.test. Organized test suites by their focus. - Suites focused on testing stanza objects are named test_stanza_X.py - Suites focused on testing stream behavior are name test_stream_X.py
Diffstat (limited to 'tests/test_stanza_roster.py')
-rw-r--r--tests/test_stanza_roster.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/test_stanza_roster.py b/tests/test_stanza_roster.py
new file mode 100644
index 00000000..a0e57987
--- /dev/null
+++ b/tests/test_stanza_roster.py
@@ -0,0 +1,84 @@
+from sleekxmpp.test import *
+from sleekxmpp.stanza.roster import Roster
+
+
+class TestRosterStanzas(SleekTest):
+
+ def testAddItems(self):
+ """Test adding items to a roster stanza."""
+ iq = self.Iq()
+ iq['roster'].setItems({
+ 'user@example.com': {
+ 'name': 'User',
+ 'subscription': 'both',
+ 'groups': ['Friends', 'Coworkers']},
+ 'otheruser@example.com': {
+ 'name': 'Other User',
+ 'subscription': 'both',
+ 'groups': []}})
+ self.check_iq(iq, """
+ <iq>
+ <query xmlns="jabber:iq:roster">
+ <item jid="user@example.com" name="User" subscription="both">
+ <group>Friends</group>
+ <group>Coworkers</group>
+ </item>
+ <item jid="otheruser@example.com" name="Other User"
+ subscription="both" />
+ </query>
+ </iq>
+ """)
+
+ def testGetItems(self):
+ """Test retrieving items from a roster stanza."""
+ xml_string = """
+ <iq>
+ <query xmlns="jabber:iq:roster">
+ <item jid="user@example.com" name="User" subscription="both">
+ <group>Friends</group>
+ <group>Coworkers</group>
+ </item>
+ <item jid="otheruser@example.com" name="Other User"
+ subscription="both" />
+ </query>
+ </iq>
+ """
+ iq = self.Iq(ET.fromstring(xml_string))
+ expected = {
+ 'user@example.com': {
+ 'name': 'User',
+ 'subscription': 'both',
+ 'groups': ['Friends', 'Coworkers']},
+ 'otheruser@example.com': {
+ 'name': 'Other User',
+ 'subscription': 'both',
+ 'groups': []}}
+ debug = "Roster items don't match after retrieval."
+ debug += "\nReturned: %s" % str(iq['roster']['items'])
+ debug += "\nExpected: %s" % str(expected)
+ self.failUnless(iq['roster']['items'] == expected, debug)
+
+ def testDelItems(self):
+ """Test clearing items from a roster stanza."""
+ xml_string = """
+ <iq>
+ <query xmlns="jabber:iq:roster">
+ <item jid="user@example.com" name="User" subscription="both">
+ <group>Friends</group>
+ <group>Coworkers</group>
+ </item>
+ <item jid="otheruser@example.com" name="Other User"
+ subscription="both" />
+ </query>
+ </iq>
+ """
+ iq = self.Iq(ET.fromstring(xml_string))
+ del iq['roster']['items']
+ self.check_iq(iq, """
+ <iq>
+ <query xmlns="jabber:iq:roster" />
+ </iq>
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestRosterStanzas)