コード例 #1
0
    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))
コード例 #2
0
    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))
コード例 #3
0
    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()