33 self.fail(
"no urdf file given, usage: " + os.path.basename(sys.argv[0]) +
" file.urdf.xacro. \ninput parameters are: " + str(sys.argv))
35 file_to_test = sys.argv[1]
36 print(
"testing " + file_to_test)
39 if not os.path.exists(file_to_test):
40 self.fail(
'file "' + file_to_test +
'" not found')
43 xacro_args =
'--inorder' if (os.environ[
'ROS_DISTRO'] <
'melodic')
else '' 44 p = subprocess.Popen(
"xacro " + xacro_args +
" " + file_to_test +
" > /tmp/test.urdf", shell=
True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
45 (out,err) = p.communicate()
46 if p.returncode != 0
and p.returncode !=
None:
47 self.fail(
"cannot convert xacro. file: " + file_to_test +
"\nOutput: " + out +
"\nError: " + err)
50 p = subprocess.Popen(
"check_urdf /tmp/test.urdf", shell=
True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
51 if p.returncode != 0
and p.returncode !=
None:
52 self.fail(
"urdf not correct. file: " + file_to_test +
"\n" + p.stderr.read())
54 if __name__ ==
'__main__':
55 rosunit.unitrun(
'cob_description',
'test_urdf', TestUrdf)
def test_correct_format(self)
A sample python unit test.