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 try:
00039 from xmlrpc.client import Binary
00040 except ImportError:
00041 from xmlrpclib import Binary
00042 import rostest
00043 import rospkg
00044
00045 import rosgraph
00046 master = rosgraph.Master('params_basic')
00047 def get_param(*args):
00048 return master.getParam(*args)
00049
00050
00051 class TestParamsBasic(unittest.TestCase):
00052
00053
00054 def test_values(self):
00055
00056 self.assertEquals(get_param('stringempty'), '')
00057 print(get_param('stringbar'))
00058 self.assertEquals(get_param('stringbar'), 'bar')
00059 self.assertEquals(get_param('str10'), '10')
00060 self.assertEquals(get_param('string10'), '10')
00061 self.assertEquals(get_param('stringentity'), '<stringentity/>')
00062
00063 self.assertEquals(get_param("integerneg1"), -1)
00064 self.assertEquals(get_param("integer0"), 0)
00065 self.assertEquals(get_param("integer1"), 1)
00066 self.assertEquals(get_param("integernoop1"), 1)
00067 self.assertEquals(get_param("integer12345"), 12345)
00068
00069 self.assertEquals(get_param("floatpi"),3.14159)
00070 self.assertEquals(get_param("floatnooppi"),3.14159)
00071 self.assertEquals(get_param("float3"),3.0)
00072 self.assertEquals(get_param("floatneg1"),-1.0)
00073
00074 for p in ['true', 'TRUE', 'True']:
00075 self.assertTrue(get_param(p), "[%s] is not false: %s"%(p, get_param(p)))
00076 for p in ['false', "FALSE", 'False']:
00077 self.assertFalse(get_param(p), "[%s] is not false: %s"%(p, get_param(p)))
00078
00079
00080 def test_ns(self):
00081 self.assertEquals(get_param("/wg/childparam"),"wg")
00082 self.assertEquals(get_param("/wg2/childparam"),"wg2")
00083 self.assertEquals(get_param("/wg3/childparam"),"wg3")
00084 self.assertEquals(get_param("/wg/wg4/childparam"),"wg4")
00085 self.assertEquals(get_param("/wg/wg4/wg5/childparam"),"wg5")
00086
00087 self.assertEquals(get_param("/wga/wg/childparam"),"wg")
00088 self.assertEquals(get_param("/wga/wg2/childparam"),"wg2")
00089 self.assertEquals(get_param("/wga/wg3/childparam"),"wg3")
00090 self.assertEquals(get_param("/wga/wg/wg4/childparam"),"wg4")
00091 self.assertEquals(get_param("/wga/wg/wg4/wg5/childparam"),"wg5")
00092
00093 self.assertEquals(get_param("/wga/wgb/wg/childparam"),"bwg")
00094 self.assertEquals(get_param("/wga/wgb/wg2/childparam"),"bwg2")
00095 self.assertEquals(get_param("/wga/wgb/wg3/childparam"),"bwg3")
00096 self.assertEquals(get_param("/wga/wgb/wg/wg4/childparam"),"bwg4")
00097 self.assertEquals(get_param("/wga/wgb/wg/wg4/wg5/childparam"),"bwg5")
00098
00099 self.assertEquals(get_param("/wgc/childparam"),"wg")
00100 self.assertEquals(get_param("/wgc2/childparam"),"wg2")
00101 self.assertEquals(get_param("/wgc3/childparam"),"wg3")
00102 self.assertEquals(get_param("/wgc/wg4/childparam"),"wg4")
00103 self.assertEquals(get_param("/wgc/wg4/wg5/childparam"),"wg5")
00104
00105
00106 def test_commandandfile(self):
00107 dir = rospkg.RosPack().get_path('roslaunch')
00108 with open(os.path.join(dir, 'resources', 'example.launch'), 'r') as f:
00109 text_data = f.read()
00110 with open(os.path.join(dir, 'resources', 'example.launch'), 'rb') as f:
00111 binary_data = f.read()
00112 self.assertEquals(get_param("commandoutput"), binary_data)
00113 self.assertEquals(get_param("textfile"), text_data)
00114
00115 bindata = get_param("binaryfile")
00116 self.assertTrue(isinstance(bindata, Binary))
00117 self.assertEquals(bindata.data, binary_data)
00118
00119 if __name__ == '__main__':
00120 rostest.rosrun(PKG, sys.argv[0], TestParamsBasic, sys.argv)
00121