summaryrefslogtreecommitdiff
path: root/src/leap/common/tests/test_events.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/common/tests/test_events.py')
-rw-r--r--src/leap/common/tests/test_events.py54
1 files changed, 41 insertions, 13 deletions
diff --git a/src/leap/common/tests/test_events.py b/src/leap/common/tests/test_events.py
index 7ef3e1b..2ad097e 100644
--- a/src/leap/common/tests/test_events.py
+++ b/src/leap/common/tests/test_events.py
@@ -1,4 +1,4 @@
-## -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
# test_events.py
# Copyright (C) 2013 LEAP
#
@@ -20,11 +20,13 @@ import os
import logging
import time
+from twisted.internet.reactor import callFromThread
from twisted.trial import unittest
from twisted.internet import defer
from leap.common.events import server
from leap.common.events import client
+from leap.common.events import flags
from leap.common.events import txclient
from leap.common.events import catalog
from leap.common.events.errors import CallbackAlreadyRegisteredError
@@ -37,6 +39,7 @@ if 'DEBUG' in os.environ:
class EventsGenericClientTestCase(object):
def setUp(self):
+ flags.set_events_enabled(True)
self._server = server.ensure_server(
emit_addr="tcp://127.0.0.1:0",
reg_addr="tcp://127.0.0.1:0")
@@ -47,6 +50,7 @@ class EventsGenericClientTestCase(object):
def tearDown(self):
self._client.shutdown()
self._server.shutdown()
+ flags.set_events_enabled(False)
# wait a bit for sockets to close properly
time.sleep(0.1)
@@ -59,7 +63,10 @@ class EventsGenericClientTestCase(object):
'There should be no callback for this event.')
# register one event
event1 = catalog.CLIENT_UID
- cbk1 = lambda event, _: True
+
+ def cbk1(event, _):
+ return True
+
uid1 = self._client.register(event1, cbk1)
# assert for correct registration
self.assertTrue(len(callbacks) == 1)
@@ -67,7 +74,10 @@ class EventsGenericClientTestCase(object):
'Could not register event in local client.')
# register another event
event2 = catalog.CLIENT_SESSION_ID
- cbk2 = lambda event, _: True
+
+ def cbk2(event, _):
+ return True
+
uid2 = self._client.register(event2, cbk2)
# assert for correct registration
self.assertTrue(len(callbacks) == 2)
@@ -80,8 +90,13 @@ class EventsGenericClientTestCase(object):
"""
event = catalog.CLIENT_UID
d = defer.Deferred()
- cbk_fail = lambda event, _: d.errback(event)
- cbk_succeed = lambda event, _: d.callback(event)
+
+ def cbk_fail(event, _):
+ return callFromThread(d.errback, event)
+
+ def cbk_succeed(event, _):
+ return callFromThread(d.callback, event)
+
self._client.register(event, cbk_fail, uid=1)
self._client.register(event, cbk_succeed, uid=1, replace=True)
self._client.emit(event, None)
@@ -105,9 +120,15 @@ class EventsGenericClientTestCase(object):
"""
event = catalog.CLIENT_UID
d1 = defer.Deferred()
- cbk1 = lambda event, _: d1.callback(event)
+
+ def cbk1(event, _):
+ return callFromThread(d1.callback, event)
+
d2 = defer.Deferred()
- cbk2 = lambda event, _: d2.callback(event)
+
+ def cbk2(event, _):
+ return d2.callback(event)
+
self._client.register(event, cbk1)
self._client.register(event, cbk2)
self._client.emit(event, None)
@@ -120,8 +141,10 @@ class EventsGenericClientTestCase(object):
"""
event = catalog.CLIENT_UID
d = defer.Deferred()
+
def cbk(events, _):
- d.callback(event)
+ callFromThread(d.callback, event)
+
self._client.register(event, cbk)
self._client.emit(event, None)
return d
@@ -133,14 +156,17 @@ class EventsGenericClientTestCase(object):
event1 = catalog.CLIENT_UID
d = defer.Deferred()
# register more than one callback for the same event
- self._client.register(event1, lambda ev, _: d.errback(None))
- self._client.register(event1, lambda ev, _: d.errback(None))
+ self._client.register(
+ event1, lambda ev, _: callFromThread(d.errback, None))
+ self._client.register(
+ event1, lambda ev, _: callFromThread(d.errback, None))
# unregister and emit the event
self._client.unregister(event1)
self._client.emit(event1, None)
# register and emit another event so the deferred can succeed
event2 = catalog.CLIENT_SESSION_ID
- self._client.register(event2, lambda ev, _: d.callback(None))
+ self._client.register(
+ event2, lambda ev, _: callFromThread(d.callback, None))
self._client.emit(event2, None)
return d
@@ -151,9 +177,11 @@ class EventsGenericClientTestCase(object):
event = catalog.CLIENT_UID
d = defer.Deferred()
# register one callback that would fail
- uid = self._client.register(event, lambda ev, _: d.errback(None))
+ uid = self._client.register(
+ event, lambda ev, _: callFromThread(d.errback, None))
# register one callback that will succeed
- self._client.register(event, lambda ev, _: d.callback(None))
+ self._client.register(
+ event, lambda ev, _: callFromThread(d.callback, None))
# unregister by uid and emit the event
self._client.unregister(event, uid=uid)
self._client.emit(event, None)