Example #1
0
class TestCase(unittest.TestCase):
    def setUp(self):
        self.dispatcher = EventDispatcher()

    def tearDown(self):
        return

    def testInitialState(self):
        self.assertEqual({}, self.dispatcher.getListeners())
        self.assertFalse(self.dispatcher.hasListener(PRE_FOO))
        self.assertFalse(self.dispatcher.hasListener(POST_FOO))

    def testAddListener(self):
        listener = TestEventListener()
        self.dispatcher.addListener(PRE_FOO, listener, 'preFoo')
        self.dispatcher.addListener(POST_FOO, listener, 'postFoo')
        self.dispatcher.hasListener(PRE_FOO)
        self.dispatcher.hasListener(POST_FOO)

    def testDispatch(self):
        listener = TestEventListener()
        self.dispatcher.addListener(PRE_FOO, listener, 'preFoo')
        self.dispatcher.addListener(POST_FOO, listener, 'postFoo')

        event = Event()
        self.dispatcher.dispatch(eventName=PRE_FOO, event=event)
        self.assertTrue(listener.preFooFired)
Example #2
0
class TestCase(unittest.TestCase):

    

    def setUp(self):
        self.dispatcher = EventDispatcher()

    def tearDown(self):
        return

    def testInitialState(self):
        self.assertEqual({}, self.dispatcher.getListeners())
        self.assertFalse(self.dispatcher.hasListener(PRE_FOO))
        self.assertFalse(self.dispatcher.hasListener(POST_FOO))
    
    def testAddListener(self):
        listener = TestEventListener()
        self.dispatcher.addListener(PRE_FOO, listener, 'preFoo')
        self.dispatcher.addListener(POST_FOO, listener, 'postFoo')
        self.dispatcher.hasListener(PRE_FOO)
        self.dispatcher.hasListener(POST_FOO)

    def testDispatch(self):
        listener = TestEventListener()
        self.dispatcher.addListener(PRE_FOO, listener, 'preFoo')
        self.dispatcher.addListener(POST_FOO, listener, 'postFoo')

        event = Event()
        self.dispatcher.dispatch(eventName=PRE_FOO, event=event)
        self.assertTrue(listener.preFooFired)
Example #3
0
import config
from eventdispatcher import EventDispatcher
from eventreader import EventReader


def block_to_dict(b):
    return {
        "full_text": str(b.full_text()),
        "markup": "pango",
        "name": type(b).__name__,
        "instance": str(id(b))
    }


if __name__ == "__main__":
    event_dispatcher = EventDispatcher(EventReader())
    print(json.dumps({"version": 1, "click_events": True}))
    print("[")

    while True:
        for block in config.blocks:
            block.update()

        event_dispatcher.dispatch(config.blocks)

        serializable_block_content = list(map(block_to_dict, config.blocks))
        print(json.dumps(serializable_block_content) + ",")

        sys.stdout.flush()
        time.sleep(0.25)
class EventDispatcherTest(unittest.TestCase):
	'''Tests the event dispatcher'''
	
	
	def setUp(self):
		self.dispatcher = EventDispatcher()
		self.listener = EventListener()
	
	
	def test_dispatch(self):
		self.dispatcher.listen('test.dispatch', self.listener.onDispatch)
		self.dispatcher.dispatch('test.dispatch', TestEvent('dispatch'))
		self.assertEqual('dispatch', self.listener.testStr)
	
	
	def test_priority(self):
		self.dispatcher.listen('test.priority', self.listener.listenPriority('d'), 1)
		self.dispatcher.listen('test.priority', self.listener.listenPriority('a'), -2)
		self.dispatcher.listen('test.priority', self.listener.listenPriority('c'))
		self.dispatcher.listen('test.priority', self.listener.listenPriority('b'), -1)
		
		self.dispatcher.dispatch('test.priority')
		self.assertEqual('abcd', self.listener.testStr)
	
	
	def test_detach(self):
		self.dispatcher.listen('test.detach', self.listener.onDispatch)
		listener_id = self.dispatcher.listen('test.detach', self.listener.onDispatch)
		self.dispatcher.detach(listener_id)
		
		self.dispatcher.dispatch('test.detach', TestEvent('detach'))
		self.assertEqual('detach', self.listener.testStr)
	
	
	def test_dispatchWhenNoneListener(self):
		self.dispatcher.dispatch('alone')
	
	
	def test_getParent(self):
		self.assertEqual('test.parent', self.dispatcher.getParent('test.parent.child'))
		self.assertEqual(None, self.dispatcher.getParent('noparent'))
		with self.assertRaises(AssertionError):
			self.dispatcher.getParent('test.parent .childish')
	
	
	def test_propagation(self):
		self._registerListenerForPropagationTest(self.dispatcher)
		self.dispatcher.dispatch('test.propa', TestEvent('propa-'), True)
		self.assertEqual('propa-propa-', self.listener.testStr)
	
	
	def test_globalPropagation(self):
		dispatcher = EventDispatcher(True)
		self._registerListenerForPropagationTest(dispatcher)
		dispatcher.dispatch('test.propa', TestEvent('propa-'))
		self.assertEqual('propa-propa-', self.listener.testStr)
	
	
	def test_propagationOverriding(self):
		dispatcher = EventDispatcher(True)
		self._registerListenerForPropagationTest(dispatcher)
		dispatcher.dispatch('test.propa', TestEvent('propa-'), False)
		self.assertEqual('propa-', self.listener.testStr)
	
	
	def test_decorator(self):
		@self.dispatcher.on('test.decorator')
		def listener(e):
			self.listener.onDispatch(e)
		self.dispatcher.dispatch('test.decorator', TestEvent('decorator'))
		self.assertEqual('decorator', self.listener.testStr)
	
	
	def test_listenAll(self):
		self.dispatcher.listen('test.a', self.listener.onDispatch)
		self.dispatcher.listen('all', self.listener.onDispatch)
		self.dispatcher.dispatch('test.a', TestEvent('a'))
		self.dispatcher.dispatch('test.b', TestEvent('b'))
		self.dispatcher.dispatch('test.c', TestEvent('c'))
		self.dispatcher.dispatch('test.d', TestEvent('d'))
		self.dispatcher.dispatch('test.e', TestEvent('e'))
		self.assertEqual('aabcde', self.listener.testStr)
	
	
	def _registerListenerForPropagationTest(self, dispatcher):
		dispatcher.listen('test', self.listener.onDispatch)
		dispatcher.listen('test.propa', self.listener.onDispatch)
	def test_propagationOverriding(self):
		dispatcher = EventDispatcher(True)
		self._registerListenerForPropagationTest(dispatcher)
		dispatcher.dispatch('test.propa', TestEvent('propa-'), False)
		self.assertEqual('propa-', self.listener.testStr)
	def test_globalPropagation(self):
		dispatcher = EventDispatcher(True)
		self._registerListenerForPropagationTest(dispatcher)
		dispatcher.dispatch('test.propa', TestEvent('propa-'))
		self.assertEqual('propa-propa-', self.listener.testStr)