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)