Example #1
0
def test_event_dispatch():
    q = Queue.Queue()

    def callback(event):
        q.put(event)

    for tc_id, tc in enumerate(dispatch_test_cases):
        print "Launching test case {0}".format(tc_id)
        q.queue.clear()
        listeners = {}

        for event in tc['register_events']:
            listener = gem.event.PyListener(callback)
            event.register(listener)
            listeners.setdefault(event, []).append(listener)

        for event in tc['raise_events']:
            event.notify_observers()

        for event in tc['listen_events']:
            raised_event = q.get()
            assert raised_event == event

        for event, listeners in listeners.iteritems():
            for l in listeners:
                event.unregister(l)
            event.notify_observers()
            assert q.empty()
Example #2
0
def test_event_dispatch():
    q = Queue.Queue()

    def callback(event):
        q.put(event)

    for tc_id, tc in enumerate(dispatch_test_cases):
        print "Launching test case {0}".format(tc_id)
        q.queue.clear()
        listeners = {}

        for event in tc['register_events']:
            listener = gem.event.PyListener(callback)
            event.register(listener)
            listeners.setdefault(event, []).append(listener)

        for event in tc['raise_events']:
            event.notify_observers()

        for event in tc['listen_events']:
            raised_event = q.get()
            assert raised_event == event

        for event, listeners in listeners.iteritems():
            for l in listeners:
                event.unregister(l)
            event.notify_observers()
            assert q.empty()
Example #3
0
def test_event_dispatch_object():
    q = Queue.Queue()

    class CBClass(object):
        def callback(self, event, arg1, arg2):
            q.put(event)
            q.put(arg1)
            q.put(arg2)

    obj = CBClass()

    for tc_id, tc in enumerate(args_test_cases):
        print "Launching test case {0}".format(tc_id)
        q.queue.clear()
        listeners = {}

        for event in tc['register_events']:
            listener = gem.event.PyListener(obj.callback)
            event.register(listener)
            listeners.setdefault(event, []).append(listener)

        for event in tc['raise_events']:
            event.notify_observers(tc['arg1'], tc['arg2'])

        for event in tc['listen_events']:
            raised_event = q.get()
            assert raised_event == event
            assert q.get() == tc['arg1']
            assert q.get() == tc['arg2']

        for event, listeners in listeners.iteritems():
            for l in listeners:
                event.unregister(l)
            event.notify_observers()
            assert q.empty()
Example #4
0
File: event.py Project: PureDu/gem
def _create_wrapper(self, event_handles, fn, event, event_passthrough=False):
    """_create_wrapper creates an event decorated wrapper function around a
    method, and registers it as an event callback

    Keyword arguments:
    event_passthrough -- whether the wrapped function expects the event id as its first parameter"""
    def _wrapper(event, *args, **kwargs):
        if event_passthrough == False:
            return fn(*args, **kwargs)

        return fn(event, *args, **kwargs)

    listener = gem.event.PyListener(_wrapper)
    event.register(listener)
    event_handles.setdefault(event, []).append(listener)
    return _wrapper
Example #5
0
File: event.py Project: gemrs/gem
def _create_wrapper(self, event_handles, fn, event, event_passthrough=False):
    """_create_wrapper creates an event decorated wrapper function around a
    method, and registers it as an event callback

    Keyword arguments:
    event_passthrough -- whether the wrapped function expects the event id as its first parameter"""

    def _wrapper(event, *args, **kwargs):
        if event_passthrough == False:
            return fn(*args, **kwargs)

        return fn(event, *args, **kwargs)

    listener = gem.event.PyListener(_wrapper)
    event.register(listener)
    event_handles.setdefault(event, []).append(listener)
    return _wrapper
Example #6
0
def test_event_dispatch_object():
    q = Queue.Queue()

    class CBClass(object):
        def callback(self, event, arg1, arg2):
            q.put(event)
            q.put(arg1)
            q.put(arg2)

    obj = CBClass()


    for tc_id, tc in enumerate(args_test_cases):
        print "Launching test case {0}".format(tc_id)
        q.queue.clear()
        listeners = {}

        for event in tc['register_events']:
            listener = gem.event.PyListener(obj.callback)
            event.register(listener)
            listeners.setdefault(event, []).append(listener)

        for event in tc['raise_events']:
            event.notify_observers(tc['arg1'], tc['arg2'])

        for event in tc['listen_events']:
            raised_event = q.get()
            assert raised_event == event
            assert q.get() == tc['arg1']
            assert q.get() == tc['arg2']

        for event, listeners in listeners.iteritems():
            for l in listeners:
                event.unregister(l)
            event.notify_observers()
            assert q.empty()