diff options
author | mathieui <mathieui@mathieui.net> | 2020-12-04 00:23:13 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2020-12-04 00:27:26 +0100 |
commit | 8eb756d55c575055cddf9f0bc6f5f1ae27486dc5 (patch) | |
tree | 4509cc5568237c8bf421a393e9db943c1e448ab1 | |
parent | 4da1c8573eb554900e4f42416d7ace2b912c56be (diff) | |
download | slixmpp-8eb756d55c575055cddf9f0bc6f5f1ae27486dc5.tar.gz slixmpp-8eb756d55c575055cddf9f0bc6f5f1ae27486dc5.tar.bz2 slixmpp-8eb756d55c575055cddf9f0bc6f5f1ae27486dc5.tar.xz slixmpp-8eb756d55c575055cddf9f0bc6f5f1ae27486dc5.zip |
XEP-0045: Add basic stanza tests
-rw-r--r-- | tests/test_stanza_xep_0045.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/test_stanza_xep_0045.py b/tests/test_stanza_xep_0045.py new file mode 100644 index 00000000..29dd75db --- /dev/null +++ b/tests/test_stanza_xep_0045.py @@ -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) |