Updated roster stanza with docs and PEP8 style.
This commit is contained in:
84
tests/test_roster.py
Normal file
84
tests/test_roster.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user