def test_subscribe_multi_listeners_inherit_topic(self): PUBLISHER.subscribe(self._listener, RideMessage) PUBLISHER.subscribe(_common_listener, RideMessage) PUBLISHER.subscribe(self._static_listener, RideTestMessageWithAttrs) PUBLISHER.subscribe(self._class_listener, RideTestMessageWithAttrs) msg_obj = RideTestMessageWithAttrs(foo='one', bar='two') msg_obj.publish() PUBLISHER.publish(RideTestMessageWithAttrs, 'test') assert_equal(len(TestPublisher.cls_msgs), 4 * 2)
def publish(self): """Publishes the message. All listeners that have subscribed to the topic of this message will be called with the this instance as an argument. Notifications are sent sequentially. Due to the limitations of current implementation, if any of the listeners raises an exception, subsequent listeners will not get the notification. """ from robotide.publish.publisher import PUBLISHER PUBLISHER.publish(self.__class__, self)
def test_unsubscribe_ride_message_publish(self): PUBLISHER.subscribe(self._listener, RideTestMessageWithAttrs) PUBLISHER.unsubscribe(self._listener, RideTestMessageWithAttrs) PUBLISHER.publish(RideTestMessageWithAttrs, 'test') assert_equal(self._msg, '')
def test_unsubscribe_invalid_topic(self): PUBLISHER.subscribe(self._listener, RideTestMessageWithAttrs) assert_raises(TypeError, PUBLISHER.unsubscribe, self._listener, 'RideTestMessageWithAttrs') PUBLISHER.publish(RideTestMessageWithAttrs, 'test') assert_equal(self._msg, 'test')
def test_publishing_ride_message(self): PUBLISHER.subscribe(self._listener, RideMessage) PUBLISHER.publish(RideTestMessageWithAttrs, 'content3') assert_equal(self._msg, 'content3')