def test_set_parameter(self): # make sure client copied each parameter correct ns_source = rospy.get_param('parameter_namespace') ns_target = rospy.get_param('target_namespace') tests = self.tests for t in tests: source_name = roslib.names.ns_join(ns_source, t) target_name = roslib.names.ns_join(ns_target, t) source_value = rospy.get_param(source_name) target_value = rospy.get_param(target_name) if t != 'float': self.assertEquals(source_value, target_value) else: self.assertAlmostEquals(source_value, target_value)
def test_parameter_client_read(self): timeout_t = time.time() + 20. print("waiting for 20 seconds for client to load") tests = self.tests msgs = [None] while any(1 for m in msgs if m is None) and \ not rospy.is_shutdown() and \ timeout_t > time.time(): time.sleep(0.2) msgs = [getattr(self, t + '_msg') for t in tests] print("msgs: %s" % (msgs)) self.assertFalse(timeout_t < time.time(), "timeout exceeded") self.assertFalse(rospy.is_shutdown(), "node shutdown") self.assertFalse(any(1 for m in msgs if m is None), "did not receive all expected messages: " + str(msgs)) ns = rospy.get_param('parameter_namespace') for t in tests: p_name = roslib.names.ns_join(ns, t) value = rospy.get_param(p_name, t) msg = getattr(self, "%s_msg" % (t)) print("get param: %s" % (p_name)) print("param value: %s" % (value)) print("msg value: %s" % (msg)) if t == 'composite': print("value", p_name, value) m = Composite(CompositeA(**value['a']), CompositeB(**value['b'])) self.assertAlmostEqual(m.a.x, msg.a.x) self.assertAlmostEqual(m.a.y, msg.a.y) self.assertAlmostEqual(m.a.z, msg.a.z) self.assertAlmostEqual(m.a.w, msg.a.w) self.assertAlmostEqual(m.b.x, msg.b.x) self.assertAlmostEqual(m.b.y, msg.b.y) self.assertAlmostEqual(m.b.z, msg.b.z) elif t == 'list': self.assertEqual(list(value), list(msg.int32_array)) elif t == 'float': self.assertAlmostEqual(value, msg.data) else: self.assertEqual(value, msg.data)
def test_parameter_client_read(self): timeout_t = time.time() + 20. print "waiting for 20 seconds for client to load" tests = self.tests msgs = [None] while any(1 for m in msgs if m is None) and \ not rospy.is_shutdown() and \ timeout_t > time.time(): time.sleep(0.2) msgs = [getattr(self, t+'_msg') for t in tests] print "msgs: %s"%(msgs) self.failIf(timeout_t < time.time(), "timeout exceeded") self.failIf(rospy.is_shutdown(), "node shutdown") self.failIf(any(1 for m in msgs if m is None), "did not receive all expected messages: "+str(msgs)) ns = rospy.get_param('parameter_namespace') for t in tests: p_name = roslib.names.ns_join(ns, t) value = rospy.get_param(p_name, t) msg = getattr(self, "%s_msg"%(t)) print "get param: %s"%(p_name) print "param value: %s"%(value) print "msg value: %s"%(msg) if t == 'composite': print "value", p_name, value m = Composite(CompositeA(**value['a']), CompositeB(**value['b'])) self.assertAlmostEquals(m.a.x, msg.a.x) self.assertAlmostEquals(m.a.y, msg.a.y) self.assertAlmostEquals(m.a.z, msg.a.z) self.assertAlmostEquals(m.a.w, msg.a.w) self.assertAlmostEquals(m.b.x, msg.b.x) self.assertAlmostEquals(m.b.y, msg.b.y) self.assertAlmostEquals(m.b.z, msg.b.z) elif t == 'list': self.assertEquals(list(value), list(msg.int32_array)) elif t == 'float': self.assertAlmostEquals(value, msg.data) else: self.assertEquals(value, msg.data)
def test_tilde_parameter(self): timeout_t = time.time() + 20. print "waiting for 20 seconds for client to load" while self.tilde_msg is None and \ not rospy.is_shutdown() and \ timeout_t > time.time(): time.sleep(0.2) self.failIf(timeout_t < time.time(), "timeout exceeded") self.failIf(rospy.is_shutdown(), "node shutdown") self.failIf(self.tilde_msg is None) self.assertEquals(rospy.get_param('param_client/tilde'), self.tilde_msg.data)