import time import threading from sleekxmpp.test import * class TestOOB(SleekTest): def tearDown(self): self.stream_close() def testSendOOB(self): """Test sending an OOB transfer request.""" self.stream_start(plugins=['xep_0066', 'xep_0030']) url = 'http://github.com/fritzy/SleekXMPP/blob/master/README' t = threading.Thread( name='send_oob', target=self.xmpp['xep_0066'].send_oob, args=('user@example.com', url), kwargs={'desc': 'SleekXMPP README'}) t.start() self.send(""" http://github.com/fritzy/SleekXMPP/blob/master/README SleekXMPP README """) self.recv(""" """) t.join() def testReceiveOOB(self): """Test receiving an OOB request.""" self.stream_start(plugins=['xep_0066', 'xep_0030']) events = [] def receive_oob(iq): events.append(iq['oob_transfer']['url']) self.xmpp.add_event_handler('oob_transfer', receive_oob) self.recv(""" http://github.com/fritzy/SleekXMPP/blob/master/README SleekXMPP README """) time.sleep(0.1) self.assertEqual(events, ['http://github.com/fritzy/SleekXMPP/blob/master/README'], 'URL was not received: %s' % events) suite = unittest.TestLoader().loadTestsFromTestCase(TestOOB)