Пример #1
0
    def test_publish(self):
        sub = rospy.Subscriber(DEFAULT_TOPIC, Statistics, self.msg_cb)
        registry = StatisticsRegistry(DEFAULT_TOPIC)
        self.last_msg = None
        rospy.sleep(0.5)  #Time for pub-sub connection
        registry.publish()
        self.wait_for_msg()
        self.evaluate_msgs({}, self.last_msg)
        var = 1.0
        registry.registerFunction("var", (lambda: var))
        self.last_msg = None
        registry.publish()
        self.wait_for_msg()
        self.evaluate_msgs({"var": 1.0}, self.last_msg)

        self.last_msg = None
        registry.publishCustomStatistic("foo", 23)
        self.wait_for_msg()
        self.evaluate_msgs({"foo": 23}, self.last_msg)
    def test_publish(self):
        sub = rospy.Subscriber(DEFAULT_TOPIC + "/full", Statistics,
                               self.full_msg_cb)
        names_sub = rospy.Subscriber(DEFAULT_TOPIC + "/names", StatisticsNames,
                               self.names_msg_cb)
        values_sub = rospy.Subscriber(DEFAULT_TOPIC + "/values", StatisticsValues,
                               self.values_msg_cb)
        registry = StatisticsRegistry(DEFAULT_TOPIC)
        rospy.sleep(0.5) #Time for pub-sub connection
        self.clear()
        registry.publish()
        self.wait_for_msg()
        self.compare_full_msg({}, self.last_full_msg)
        self.assertEqual(self.last_names_msg.names_version,
                         self.last_values_msg.names_version)
        old_names_ver = self.last_names_msg.names_version

        var = 1.0
        registry.registerFunction("var", (lambda: var))
        self.clear()
        registry.publish()
        self.wait_for_msg()
        self.compare_full_msg({"var": 1.0}, self.last_full_msg)
        self.assertEqual(self.last_names_msg.names_version,
                         self.last_values_msg.names_version)
        self.assertNotEqual(old_names_ver, self.last_names_msg.names_version)
        old_names_ver = self.last_names_msg.names_version

        #If we publish the same statistics, names_version shouldn't change
        self.clear()
        registry.publish()
        self.wait_for_msg()
        self.assertEqual(old_names_ver, self.last_names_msg.names_version)


        self.clear()
        registry.publishCustomStatistic("foo", 23)
        rospy.sleep(0.2) #hard coded sleep only for full msg
        self.compare_full_msg({"foo": 23}, self.last_full_msg)