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