def test_notify_resolves_promise_when_finished(self): # prepare dispatcher d = Dispatcher() foo = mock.MagicMock(side_effect=call_deferred) cb = mock.MagicMock() d.attach('foo', foo) # test d.notify('foo', self.event).done(cb) # verify foo.assert_called_once_with(IsA(Event), deferred=IsA(Deferred)) cb.assert_called_once_with(IsA(Event))
def test_notify_notifies_listeners_until_propagation_is_not_stopped(self): # prepare dispatcher d = Dispatcher() foo = mock.MagicMock(side_effect=call_deferred) bar = mock.MagicMock(side_effect=call_deferred) d.attach('foo', foo) d.attach('foo', bar) # test d.notify('foo', self.event) # verify foo.assert_called_once_with(IsA(Event), deferred=IsA(Deferred)) bar.assert_called_once_with(IsA(Event), deferred=IsA(Deferred))
def test_notify_terminates_notification_when_event_propagation_is_stopped( self): # prepare dispatcher d = Dispatcher() def stop_propagation(event, deferred): event.stop_propagation() call_deferred(event, deferred) foo = mock.MagicMock(side_effect=stop_propagation) bar = mock.MagicMock(side_effect=call_deferred) d.attach('foo', foo) d.attach('foo', bar) # test d.notify('foo', self.event) # verify foo.assert_called_once_with(IsA(Event), deferred=IsA(Deferred)) bar.assert_never_called()