summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_events.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/test_events.py b/tests/test_events.py
new file mode 100644
index 00000000..11821dbb
--- /dev/null
+++ b/tests/test_events.py
@@ -0,0 +1,35 @@
+import unittest
+
+class testevents(unittest.TestCase):
+
+ def setUp(self):
+ import sleekxmpp.stanza.presence as p
+ self.p = p
+
+ def testEventHappening(self):
+ "Test handler working"
+ import sleekxmpp
+ c = sleekxmpp.ClientXMPP('crap@wherever', 'password')
+ happened = []
+ def handletestevent(event):
+ happened.append(True)
+ c.add_event_handler("test_event", handletestevent)
+ c.event("test_event", {})
+ c.event("test_event", {})
+ self.failUnless(happened == [True, True], "event did not get triggered twice")
+
+ def testDelEvent(self):
+ "Test handler working, then deleted and not triggered"
+ import sleekxmpp
+ c = sleekxmpp.ClientXMPP('crap@wherever', 'password')
+ happened = []
+ def handletestevent(event):
+ happened.append(True)
+ c.add_event_handler("test_event", handletestevent)
+ c.event("test_event", {})
+ c.del_event_handler("test_event", handletestevent)
+ c.event("test_event", {}) # should not trigger because it was deleted
+ self.failUnless(happened == [True], "event did not get triggered the correct number of times")
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(testevents)