コード例 #1
0
 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)
コード例 #2
0
    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)
コード例 #3
0
 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, '')
コード例 #4
0
 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')
コード例 #5
0
 def test_publishing_ride_message(self):
     PUBLISHER.subscribe(self._listener, RideMessage)
     PUBLISHER.publish(RideTestMessageWithAttrs, 'content3')
     assert_equal(self._msg, 'content3')