コード例 #1
0
def test_reset_state():
    """ Test .reset_state() """
    m = mock.Mock()
    p = Publisher()

    p.subscribe(Sink(m, 1))

    m.assert_not_called()

    # test .reset_state() before and after subscribing
    p.reset_state()
    assert p.get() == NONE

    p.subscribe(Sink(m, 2))

    m.assert_not_called()

    m.reset_mock()

    # test .reset_state() after notify
    p.notify('check')
    assert p.get() == 'check'
    m.assert_has_calls([mock.call(1, 'check'), mock.call(2, 'check')])
    m.reset_mock()

    # test no subscribers get notified
    p.reset_state()
    m.assert_not_called()

    assert p.get() == NONE
コード例 #2
0
 def unsubscribe(self, subscriber: Subscriber) -> None:
     Publisher.unsubscribe(self, subscriber)
     if not self._subscriptions:
         for publisher in self._orginators:
             publisher.unsubscribe(self)
         Publisher.reset_state(self)
コード例 #3
0
    def unsubscribe(self, subscriber: Subscriber) -> None:
        Publisher.unsubscribe(self, subscriber)

        if not self._subscriptions and self._originator is not None:
            self._originator.unsubscribe(self)
            Publisher.reset_state(self)