import unittest from slixmpp import Iq, Message, JID from slixmpp.test import SlixTest from slixmpp.plugins.xep_0369 import stanza from slixmpp.plugins.xep_0060 import stanza as pstanza from slixmpp.plugins.xep_0369.mix_core import BASE_NODES class TestMIXStanza(SlixTest): def setUp(self): stanza.register_plugins() def testMIXJoin(self): """Test that data is converted to base64""" iq = Iq() iq['type'] = 'set' for node in BASE_NODES: sub = stanza.Subscribe() sub['node'] = node iq['mix_join'].append(sub) iq['mix_join']['nick'] = 'Toto' self.check(iq, """ Toto """) def testMIXUpdateSub(self): iq = Iq() iq['type'] = 'set' iq.enable('mix_updatesub') sub = stanza.Subscribe() sub['node'] = 'urn:xmpp:mix:nodes:someothernode' iq['mix_updatesub'].append(sub) self.check(iq, """ """) def testMIXLeave(self): iq = Iq() iq['type'] = 'set' iq.enable('mix_leave') self.check(iq, """ """) def testMIXSetNick(self): iq = Iq() iq['type'] = 'set' iq['mix_setnick']['nick'] = 'A nick' self.check(iq, """ A nick """) def testMIXMessage(self): msg = Message() msg['type'] = 'groupchat' msg['body'] = 'This is a message body' msg['mix']['nick'] = 'A nick' msg['mix']['jid'] = JID('toto@example.com') self.check(msg, """ This is a message body A nick toto@example.com """) def testMIXNewParticipant(self): msg = Message() msg['pubsub_event']['items']['node'] = 'urn:xmpp:mix:nodes:participants' item = pstanza.EventItem() item['id'] = '123456' item['mix_participant']['jid'] = JID('titi@example.com') item['mix_participant']['nick'] = 'Titi' msg['pubsub_event']['items'].append(item) self.check(msg, """ titi@example.com Titi """, use_values=False) suite = unittest.TestLoader().loadTestsFromTestCase(TestMIXStanza)