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
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)
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)