00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 PKG = 'test_roslaunch'
00035
00036 import os, sys, unittest
00037
00038 import xmlrpclib
00039 import rostest
00040 import rospkg
00041
00042 import rosgraph
00043 master = rosgraph.Master('params_basic')
00044 def get_param(*args):
00045 return master.getParam(*args)
00046
00047
00048 class TestParamsBasic(unittest.TestCase):
00049
00050
00051 def test_values(self):
00052
00053 self.assertEquals(get_param('stringempty'), '')
00054 print get_param('stringbar')
00055 self.assertEquals(get_param('stringbar'), 'bar')
00056 self.assertEquals(get_param('str10'), '10')
00057 self.assertEquals(get_param('string10'), '10')
00058 self.assertEquals(get_param('stringentity'), '<stringentity/>')
00059
00060 self.assertEquals(get_param("integerneg1"), -1)
00061 self.assertEquals(get_param("integer0"), 0)
00062 self.assertEquals(get_param("integer1"), 1)
00063 self.assertEquals(get_param("integernoop1"), 1)
00064 self.assertEquals(get_param("integer12345"), 12345)
00065
00066 self.assertEquals(get_param("floatpi"),3.14159)
00067 self.assertEquals(get_param("floatnooppi"),3.14159)
00068 self.assertEquals(get_param("float3"),3.0)
00069 self.assertEquals(get_param("floatneg1"),-1.0)
00070
00071 for p in ['true', 'TRUE', 'True']:
00072 self.assertTrue(get_param(p), "[%s] is not false: %s"%(p, get_param(p)))
00073 for p in ['false', "FALSE", 'False']:
00074 self.assertFalse(get_param(p), "[%s] is not false: %s"%(p, get_param(p)))
00075
00076
00077 def test_ns(self):
00078 self.assertEquals(get_param("/wg/childparam"),"wg")
00079 self.assertEquals(get_param("/wg2/childparam"),"wg2")
00080 self.assertEquals(get_param("/wg3/childparam"),"wg3")
00081 self.assertEquals(get_param("/wg/wg4/childparam"),"wg4")
00082 self.assertEquals(get_param("/wg/wg4/wg5/childparam"),"wg5")
00083
00084 self.assertEquals(get_param("/wga/wg/childparam"),"wg")
00085 self.assertEquals(get_param("/wga/wg2/childparam"),"wg2")
00086 self.assertEquals(get_param("/wga/wg3/childparam"),"wg3")
00087 self.assertEquals(get_param("/wga/wg/wg4/childparam"),"wg4")
00088 self.assertEquals(get_param("/wga/wg/wg4/wg5/childparam"),"wg5")
00089
00090 self.assertEquals(get_param("/wga/wgb/wg/childparam"),"bwg")
00091 self.assertEquals(get_param("/wga/wgb/wg2/childparam"),"bwg2")
00092 self.assertEquals(get_param("/wga/wgb/wg3/childparam"),"bwg3")
00093 self.assertEquals(get_param("/wga/wgb/wg/wg4/childparam"),"bwg4")
00094 self.assertEquals(get_param("/wga/wgb/wg/wg4/wg5/childparam"),"bwg5")
00095
00096 self.assertEquals(get_param("/wgc/childparam"),"wg")
00097 self.assertEquals(get_param("/wgc2/childparam"),"wg2")
00098 self.assertEquals(get_param("/wgc3/childparam"),"wg3")
00099 self.assertEquals(get_param("/wgc/wg4/childparam"),"wg4")
00100 self.assertEquals(get_param("/wgc/wg4/wg5/childparam"),"wg5")
00101
00102
00103 def test_commandandfile(self):
00104 dir = rospkg.RosPack().get_path('roslaunch')
00105 with open(os.path.join(dir, 'resources', 'example.launch'), 'r') as f:
00106 data = f.read()
00107 test_file = data
00108 self.assertEquals(get_param("commandoutput"),test_file)
00109 self.assertEquals(get_param("textfile"),test_file)
00110
00111 bindata = get_param("binaryfile")
00112 self.assertTrue(isinstance(bindata, xmlrpclib.Binary))
00113 self.assertEquals(bindata.data,test_file)
00114
00115 if __name__ == '__main__':
00116 rostest.rosrun(PKG, sys.argv[0], TestParamsBasic, sys.argv)
00117