XEP-0045: Add basic stanza tests
This commit is contained in:
parent
4da1c8573e
commit
8eb756d55c
1 changed files with 100 additions and 0 deletions
100
tests/test_stanza_xep_0045.py
Normal file
100
tests/test_stanza_xep_0045.py
Normal file
|
@ -0,0 +1,100 @@
|
|||
import unittest
|
||||
from slixmpp import Message, Presence, Iq, JID
|
||||
from slixmpp.test import SlixTest
|
||||
from slixmpp.plugins.xep_0045.stanza import (
|
||||
MUCPresence,
|
||||
MUCJoin,
|
||||
MUCMessage,
|
||||
MUCAdminQuery,
|
||||
MUCAdminItem,
|
||||
MUCHistory,
|
||||
MUCOwnerQuery,
|
||||
MUCOwnerDestroy,
|
||||
MUCStatus,
|
||||
MUCInvite,
|
||||
MUCDecline,
|
||||
)
|
||||
from slixmpp.xmlstream import register_stanza_plugin, ET
|
||||
|
||||
|
||||
class TestMUC(SlixTest):
|
||||
|
||||
def setUp(self):
|
||||
register_stanza_plugin(MUCMessage, MUCInvite)
|
||||
register_stanza_plugin(MUCMessage, MUCDecline)
|
||||
register_stanza_plugin(MUCMessage, MUCStatus)
|
||||
register_stanza_plugin(MUCPresence, MUCStatus)
|
||||
register_stanza_plugin(Presence, MUCPresence)
|
||||
register_stanza_plugin(Presence, MUCJoin)
|
||||
register_stanza_plugin(MUCJoin, MUCHistory)
|
||||
register_stanza_plugin(Message, MUCMessage)
|
||||
register_stanza_plugin(Iq, MUCAdminQuery)
|
||||
register_stanza_plugin(Iq, MUCOwnerQuery)
|
||||
register_stanza_plugin(MUCOwnerQuery, MUCOwnerDestroy)
|
||||
register_stanza_plugin(MUCAdminQuery, MUCAdminItem, iterable=True)
|
||||
|
||||
def testPresence(self):
|
||||
presence = Presence()
|
||||
presence['from'] = JID('muc@service/nick')
|
||||
presence['muc']['affiliation'] = 'member'
|
||||
presence['muc']['role'] = 'participant'
|
||||
presence['muc']['status_codes'] = (100, 110, 210)
|
||||
|
||||
self.check(presence, """
|
||||
<presence from='muc@service/nick'>
|
||||
<x xmlns='http://jabber.org/protocol/muc#user'>
|
||||
<item affiliation='member' role='participant'/>
|
||||
<status code='100'/>
|
||||
<status code='110'/>
|
||||
<status code='210'/>
|
||||
</x>
|
||||
</presence>
|
||||
""", use_values=False)
|
||||
|
||||
|
||||
def testInvite(self):
|
||||
message = Message()
|
||||
message['from'] = 'user@server'
|
||||
message['to'] = 'muc@service'
|
||||
message['muc']['invite']['to'] = JID('user2@server2')
|
||||
message['muc']['invite']['reason'] = 'Hey'
|
||||
|
||||
self.check(message, """
|
||||
<message
|
||||
from='user@server'
|
||||
to='muc@service'>
|
||||
<x xmlns='http://jabber.org/protocol/muc#user'>
|
||||
<invite to='user2@server2'>
|
||||
<reason>Hey</reason>
|
||||
</invite>
|
||||
</x>
|
||||
</message>
|
||||
""", use_values=False)
|
||||
|
||||
def testAdmin(self):
|
||||
iq = Iq()
|
||||
iq['id'] = '0'
|
||||
iq['type'] = 'set'
|
||||
iq.enable('mucadmin_query')
|
||||
items = [
|
||||
('none', 'test@example/a'),
|
||||
('owner', 'owner@example/a'),
|
||||
]
|
||||
for aff, jid in items:
|
||||
item_el = MUCAdminItem()
|
||||
item_el['affiliation'] = aff
|
||||
item_el['jid'] = jid
|
||||
iq['mucadmin_query'].append(item_el)
|
||||
self.check(iq, """
|
||||
<iq type='set' id='0'>
|
||||
<query xmlns='http://jabber.org/protocol/muc#admin'>
|
||||
<item jid='test@example/a'
|
||||
affiliation='none'/>
|
||||
<item jid='owner@example/a'
|
||||
affiliation='owner'/>
|
||||
</query>
|
||||
</iq>
|
||||
""", use_values=False)
|
||||
|
||||
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(TestMUC)
|
Loading…
Reference in a new issue