def test_serialize() -> None: msg = String() msg.data = "test" data = serialize(msg) msg2 = String() msg2.deserialize(data[4:]) assert msg.data == msg2.data
def test_logplayer_raw(self): from ros import rosrecord import roslib.packages d = os.path.join(roslib.packages.get_pkg_dir('test_rosrecord'), 'test') f = os.path.join(d, 'hello_world.bag') self.assert_(os.path.isfile(f)) from std_msgs.msg import String for topic, msg, t in rosrecord.logplayer(f, raw=True): self.assertEquals('chatter', topic) datatype = msg[0] data = msg[1] md5sum = msg[2] bag_position = msg[3] self.assertEquals(datatype, 'std_msgs/String') self.assertEquals('992ce8a1687cec8c8bd883ec73ca41d1', md5sum) # need better testing than this self.assert_(type(bag_position == int)) # make sure message time is within expected range self.assert_(abs(t.to_sec() - 1260988735.) < 30.) # test that we can deserialize it s = String() s.deserialize(data) self.assertEquals('hello world', s.data)
def bytes_to_string_message(bytes_data): msg = StringMsg() seralizedMsgView = _bytes_to_string_message(bytes_data) return msg.deserialize(seralizedMsgView.tobytes())