|
24 | 24 |
|
25 | 25 | from launch_ros.actions import Node
|
26 | 26 | from launch_ros.actions import SetParameter, SetParametersFromFile
|
| 27 | +from launch_ros.actions.load_composable_nodes import get_composable_node_load_request |
| 28 | +from launch_ros.descriptions import ComposableNode |
27 | 29 |
|
28 | 30 | import yaml
|
29 | 31 |
|
@@ -133,4 +135,44 @@ def test_set_param_with_node():
|
133 | 135 | }
|
134 | 136 | }
|
135 | 137 |
|
136 |
| -# TODO: (Aditya) Add test case for composable node |
| 138 | + |
| 139 | +def test_set_param_with_composable_node(): |
| 140 | + lc = MockContext() |
| 141 | + node_description = ComposableNode( |
| 142 | + package='asd', |
| 143 | + plugin='my_plugin', |
| 144 | + name='my_node', |
| 145 | + namespace='my_ns', |
| 146 | + parameters=[{'asd': 'bsd'}] |
| 147 | + ) |
| 148 | + param_file_path = os.path.dirname(os.path.abspath(__file__)) + '/example_parameters_1.yaml' |
| 149 | + set_param_1 = SetParametersFromFile(param_file_path) |
| 150 | + set_param_1.execute(lc) |
| 151 | + request = get_composable_node_load_request(node_description, lc) |
| 152 | + parameters = request.parameters |
| 153 | + assert len(parameters) == 3 |
| 154 | + assert parameters[0].name == 'param_1_name' |
| 155 | + assert parameters[0].value.integer_value == 10 |
| 156 | + assert parameters[1].name == 'param_2_name' |
| 157 | + assert parameters[1].value.integer_value == 20 |
| 158 | + assert parameters[2].name == 'asd' |
| 159 | + assert parameters[2].value.string_value == 'bsd' |
| 160 | + |
| 161 | + lc = MockContext() |
| 162 | + node_description = ComposableNode( |
| 163 | + package='asd', |
| 164 | + plugin='my_plugin', |
| 165 | + name='my_node_2', |
| 166 | + namespace='my_ns', |
| 167 | + parameters=[{'asd': 'bsd'}] |
| 168 | + ) |
| 169 | + param_file_path = os.path.dirname(os.path.abspath(__file__)) + '/example_parameters_1.yaml' |
| 170 | + set_param_1 = SetParametersFromFile(param_file_path) |
| 171 | + set_param_1.execute(lc) |
| 172 | + request = get_composable_node_load_request(node_description, lc) |
| 173 | + parameters = request.parameters |
| 174 | + assert len(parameters) == 2 |
| 175 | + assert parameters[0].name == 'param_1_name' |
| 176 | + assert parameters[0].value.integer_value == 10 |
| 177 | + assert parameters[1].name == 'asd' |
| 178 | + assert parameters[1].value.string_value == 'bsd' |
0 commit comments