def to_msg_type(self): """ Creates a RatedStatisticsContainer messagetype based on the current data. :return: A RatedStatisticsContainer object from the current data. """ r = RatedStatistics() r.seuid = self.seuid if self.seuid[0] == "h": r.host = self.seuid[2:] else: r.host = self.host try: r.window_start = self.get_value("window_start")["actual"] r.window_stop = self.get_value("window_stop")["actual"] except KeyError: r.window_start = r.window_stop = None for k in self.keys(): if k in ("host", "node", "node_sub", "node_pub", "topic", "window_start", "window_stop"): continue re = RatedStatisticsEntity() re.statistic_type = k re.state = [] values = self.get_value(k) if isinstance(values["actual"], (list, tuple)): for i, v in enumerate(values["actual"]): re.actual_value.append( prepare_number_for_representation(v)) try: re.state.append(values["state"][i]) re.expected_value.append( prepare_number_for_representation( values["expected"][i])) except TypeError: re.state.append(values["state"]) re.expected_value.append("?") else: re.actual_value.append( prepare_number_for_representation(values["actual"])) re.state.append(values["state"]) if values["expected"] is None: re.expected_value.append("?") else: re.expected_value.append( prepare_number_for_representation(values["expected"])) r.rated_statistics_entity.append(re) return r
def test_callback_easy(self): """Test if a called callback adds the node - host to the dict.""" lookup = HostLookup() for x in range(1, 3): rstat = RatedStatistics() rstat.host = "host1" rstat.seuid = "n%s%s%d" % (SEUID_DELIMITER, "node", x) lookup.callback_rated(rstat) test = lookup.get_host("node1") == "host1" self.assertTrue(test)
def to_msg_type(self): """ Creates a RatedStatisticsContainer messagetype based on the current data. :return: A RatedStatisticsContainer object from the current data. """ r = RatedStatistics() r.seuid = self.seuid if self.seuid[0] == "h": r.host = self.seuid[2:] else: r.host = self.host try: r.window_start = self.get_value("window_start")["actual"] r.window_stop = self.get_value("window_stop")["actual"] except KeyError: r.window_start = r.window_stop = None for k in self.keys(): if k in ("host", "node", "node_sub", "node_pub", "topic", "window_start", "window_stop"): continue re = RatedStatisticsEntity() re.statistic_type = k re.state = [] values = self.get_value(k) if isinstance(values["actual"], (list, tuple)): for i, v in enumerate(values["actual"]): re.actual_value.append(prepare_number_for_representation(v)) try: re.state.append(values["state"][i]) re.expected_value.append(prepare_number_for_representation(values["expected"][i])) except TypeError: re.state.append(values["state"]) re.expected_value.append("?") else: re.actual_value.append(prepare_number_for_representation(values["actual"])) re.state.append(values["state"]) if values["expected"] is None: re.expected_value.append("?") else: re.expected_value.append(prepare_number_for_representation(values["expected"])) r.rated_statistics_entity.append(re) return r
def create_msg(seuid, host, entity): msg = RatedStatistics() msg.seuid = seuid msg.host = host now = rospy.Time.now() msg.window_start = now - rospy.Duration(1) msg.window_stop = now msg.rated_statistics_entity = entity return msg
def test_get_node_list(self): """Test if a simple reverse lookup with 9 nodes at one host works.""" lookup = HostLookup() node_orig_list = list() for x in range(1, 10): rstat = RatedStatistics() rstat.host = "host1" rstat.seuid = "n%s%s%d" % (SEUID_DELIMITER, "node", x) lookup.callback_rated(rstat) node_orig_list.append("node%d" % x) node_list = lookup.get_node_list("host1") self.assertItemsEqual(node_list, node_orig_list)
def create_simple_bag(): bag = rosbag.Bag('bags/john.bag', 'w') msg = RatedStatistics() msg.seuid = "n" + SEUID_DELIMITER + "node1" msg.host = "host1" now = rospy.Time.now() msg.window_start = now - rospy.Duration(5) msg.window_stop = now msg.rated_statistics_entity = [create_statistic_entity()] try: bag.write('/statistics_rated', msg) finally: bag.close()