summaryrefslogtreecommitdiff
path: root/tests/test_roster.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2010-08-11 23:32:14 -0400
committerLance Stout <lancestout@gmail.com>2010-08-11 23:32:14 -0400
commitb40a48979636ccb4055294427292b2decf095fea (patch)
tree98a04060a350fd4a2b97c12d740ad1609a234ee0 /tests/test_roster.py
parent7a5ef2849218e122b04e244aeedd67844a0690b2 (diff)
downloadslixmpp-b40a48979636ccb4055294427292b2decf095fea.tar.gz
slixmpp-b40a48979636ccb4055294427292b2decf095fea.tar.bz2
slixmpp-b40a48979636ccb4055294427292b2decf095fea.tar.xz
slixmpp-b40a48979636ccb4055294427292b2decf095fea.zip
Updated roster stanza with docs and PEP8 style.
Diffstat (limited to 'tests/test_roster.py')
-rw-r--r--tests/test_roster.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/test_roster.py b/tests/test_roster.py
new file mode 100644
index 00000000..6f9fa3d6
--- /dev/null
+++ b/tests/test_roster.py
@@ -0,0 +1,84 @@
+from . sleektest 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.checkIq(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.checkIq(iq, """
+ <iq>
+ <query xmlns="jabber:iq:roster" />
+ </iq>
+ """)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestRosterStanzas)