From f9d0b55ca3c3f43a3bc87047f55cbf4e16c3b67b Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Sat, 19 Nov 2011 18:43:38 -0800 Subject: [PATCH] Add unit test for copying stanzas when passed to events. --- tests/test_stream_handlers.py | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/tests/test_stream_handlers.py b/tests/test_stream_handlers.py index 1b831e2..6f3ea67 100644 --- a/tests/test_stream_handlers.py +++ b/tests/test_stream_handlers.py @@ -1,5 +1,6 @@ import time +from sleekxmpp import Message from sleekxmpp.test import * from sleekxmpp.xmlstream.handler import * from sleekxmpp.xmlstream.matcher import * @@ -152,5 +153,50 @@ class TestHandlers(SleekTest): self.failUnless(events == ['foo'], "Iq callback was not executed: %s" % events) + def testMultipleHandlersForStanza(self): + """ + Test that multiple handlers for a single stanza work + without clobbering each other. + """ + + def handler_1(msg): + msg.reply("Handler 1: %s" % msg['body']).send() + + def handler_2(msg): + msg.reply("Handler 2: %s" % msg['body']).send() + + def handler_3(msg): + msg.reply("Handler 3: %s" % msg['body']).send() + + self.stream_start() + self.xmpp.add_event_handler('message', handler_1) + self.xmpp.add_event_handler('message', handler_2) + self.xmpp.add_event_handler('message', handler_3) + + self.recv(""" + + Testing + + """) + + + # This test is brittle, depending on the fact that handlers + # will be checked in the order they are registered. + self.send(""" + + Handler 1: Testing + + """) + self.send(""" + + Handler 2: Testing + + """) + self.send(""" + + Handler 3: Testing + + """) + suite = unittest.TestLoader().loadTestsFromTestCase(TestHandlers)