示例#1
0
 def test_group_autoconnect(self):
     """EmitterGroup auto-connect"""
     class Source:
         def on_em1(self, ev):
             self.result = 1
         def em2_event(self, ev):
             self.result = 2
         def em3_event(self, ev):
             self.result = 3
     src = Source()
     grp = EmitterGroup(source=src, em1=Event, auto_connect=False)
     src.result = None
     grp.em1()
     assert src.result is None
     
     grp = EmitterGroup(source=src, em1=Event, auto_connect=True)
     src.result = None
     grp.em1()
     assert src.result == 1
     
     grp.auto_connect_format = "%s_event"
     grp.add(em2=Event)
     src.result = None
     grp.em2()
     assert src.result == 2
     
     grp.add(em3=Event, auto_connect=False)
     src.result = None
     grp.em3()
     assert src.result is None
示例#2
0
 def test_group_add_emitter(self):
     """EmitterGroup.add"""
     grp = EmitterGroup(em1=Event)
     grp.em1.connect(self.record_event)
     self.result = None
     ev = grp.em1()
     self.assert_result(event=ev, type='em1')
     
     grp.add(em2=BasicEvent)
     grp.em2.connect(self.record_event)
     ev = grp.em2()
     self.assert_result(event=ev, type='em2', event_class=BasicEvent)
     
     grp.add(em3=TypedEvent)
     grp.em3.connect(self.record_event)
     ev = grp.em3(test_key=2)
     self.assert_result(event=ev, type='typed_event', event_class=TypedEvent, test_key=2)
     
     try:
         grp.add(em3=Event)
         assert False, "Double-added emitter"
     except ValueError:
         pass
     
     try:
         grp.add(add=Event)
         assert False, "Added event with invalid name"
     except ValueError:
         pass
示例#3
0
 def test_group_block(self):
     """EmitterGroup.block_all"""
     grp = EmitterGroup(em1=Event, em2=Event)
     def cb(ev):
         self.result = 1
     grp.em1.connect(self.record_event)
     grp.em2.connect(self.record_event)
     grp.connect(cb)
     
     self.result = None
     grp.block_all()
     try:
         grp.em1()
         grp.em2()
         grp(type='test_event')
     finally:
         grp.unblock_all()
     assert self.result is None
示例#4
0
 def test_group_construction(self):
     """EmitterGroup basic construction"""
     grp = EmitterGroup(em1=Event,
                        em2=BasicEvent,
                        em3=TypedEvent)
                        
     grp.em1.connect(self.record_event)
     grp.em2.connect(self.record_event)
     grp.em3.connect(self.record_event)
     self.result = None
     ev = grp.em1()
     self.assert_result(event=ev, type='em1', event_class=Event)
     ev = grp.em2()
     self.assert_result(event=ev, type='em2', event_class=BasicEvent)
     ev = grp.em3()
     self.assert_result(event=ev, type='typed_event', event_class=TypedEvent)
示例#5
0
    def test_add_custom_emitter(self):
        class Emitter(EventEmitter):
            def _prepare_event(self, *args, **kwds):
                ev = super(Emitter, self)._prepare_event(*args, **kwds)
                ev.test_key = 1
                return ev

        class Source:
            pass
        src = Source()

        grp = EmitterGroup(source=src, em1=Emitter(type='test_event1'))
        grp.em1.connect(self.record_event)
        self.result = None
        ev = grp.em1()
        self.assert_result(event=ev, test_key=1, type='test_event1', source=src)
        
        grp.add(em2=Emitter(type='test_event2'))
        grp.em2.connect(self.record_event)
        self.result = None
        ev = grp.em2()
        self.assert_result(event=ev, test_key=1, type='test_event2', source=src)