Example #1
0
    def test_update(self):
        self.dispatcher.register('foo', self.make_handler('base_foo'))
        self.dispatcher.register('#', self.make_handler('hash'))

        ed = EventDispatcher()
        ed.register('foo', self.make_handler('foo'))
        ed.register('bar', self.make_handler('bar'))
        self.dispatcher.update(ed)

        self.assert_dispatched_handlers_equal('foo',
                                              {'foo', 'base_foo', 'hash'})
        self.assert_dispatched_handlers_equal('bar', {'hash', 'bar'})
Example #2
0
 def __new__(cls, clsname, bases, attrs):
     methods = {}
     event_dispatcher = EventDispatcher()
     for base in bases:
         if isinstance(base, InterfaceBase):
             methods.update(base.methods)
             event_dispatcher.update(base.event_dispatcher)
     for name, value in six.iteritems(attrs):
         if callable(value):
             if getattr(value, '_rpc', False):
                 methods[name] = value
             for event_type in getattr(value, '_event_types', ()):
                 event_dispatcher.register(event_type, value)
     attrs.setdefault('service_type', clsname.lower())
     new_cls = super(InterfaceBase, cls).__new__(cls, clsname, bases, attrs)
     new_cls.methods = methods
     new_cls.event_dispatcher = event_dispatcher
     return new_cls
Example #3
0
 def __init__(self, **kwargs):
     super(LocalEventSystem, self).__init__(**kwargs)
     self.dispatcher = EventDispatcher()
Example #4
0
 def setUp(self):
     self.dispatcher = EventDispatcher()
     self.handler_log = []
     self.handlers = {}