Skip to content

Commit cf43e92

Browse files
authored
Fix tests with get_type_description service and param present (#838)
Signed-off-by: Emerson Knapp <[email protected]>
1 parent ef5d811 commit cf43e92

File tree

6 files changed

+30
-17
lines changed

6 files changed

+30
-17
lines changed

ros2cli/ros2cli/daemon/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ def serve(server, *, timeout=2 * 60 * 60):
7575
ros_domain_id = get_ros_domain_id()
7676
node_args = argparse.Namespace(
7777
node_name_suffix=f'_daemon_{ros_domain_id}_{uuid.uuid4().hex}',
78-
start_parameter_services=False)
78+
start_parameter_services=False,
79+
start_type_description_service=False)
7980
with NetworkAwareNode(node_args) as node:
8081
functions = [
8182
node.get_name,

ros2cli/ros2cli/node/direct.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def timer_callback():
4040
start_parameter_services = getattr(
4141
args, 'start_parameter_services', False)
4242
use_sim_time = getattr(args, 'use_sim_time', False)
43+
start_type_description_service = getattr(args, 'start_type_description_service', True)
4344

4445
if node_name is None:
4546
node_name = NODE_NAME_PREFIX + node_name_suffix
@@ -48,7 +49,8 @@ def timer_callback():
4849
node_name,
4950
start_parameter_services=start_parameter_services,
5051
parameter_overrides=[
51-
Parameter('use_sim_time', value=use_sim_time)
52+
Parameter('use_sim_time', value=use_sim_time),
53+
Parameter('start_type_description_service', value=start_type_description_service),
5254
], automatically_declare_parameters_from_overrides=True)
5355

5456
timeout = getattr(args, 'spin_time', DEFAULT_TIMEOUT)

ros2param/test/test_verb_dump.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
' - 2\n'
6464
' - 3\n'
6565
' int_param: 42\n'
66+
' start_type_description_service: true\n'
6667
' str_array_param:\n'
6768
' - foo\n'
6869
' - bar\n'

ros2param/test/test_verb_list.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ def test_verb_list(self):
180180
' foo.str_param',
181181
' int_array_param',
182182
' int_param',
183+
' start_type_description_service',
183184
' str_array_param',
184185
' str_param',
185186
' use_sim_time'],

ros2param/test/test_verb_load.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
' - 3\n'
6767
' - 3\n'
6868
' int_param: -42\n'
69+
' start_type_description_service: true\n'
6970
' str_array_param:\n'
7071
' - a_foo\n'
7172
' - a_bar\n'

ros2service/test/test_cli.py

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import functools
1717
import itertools
1818
import os
19-
import re
2019
import sys
2120
import unittest
2221

@@ -105,6 +104,16 @@ def generate_test_description(rmw_implementation):
105104

106105

107106
class TestROS2ServiceCLI(unittest.TestCase):
107+
expected_builtin_services = {
108+
'describe_parameters': 'rcl_interfaces/srv/DescribeParameters',
109+
'get_parameter_types': 'rcl_interfaces/srv/GetParameterTypes',
110+
'get_parameters': 'rcl_interfaces/srv/GetParameters',
111+
'get_type_description': 'type_description_interfaces/srv/GetTypeDescription',
112+
'list_parameters': 'rcl_interfaces/srv/ListParameters',
113+
'set_parameters': 'rcl_interfaces/srv/SetParameters',
114+
'set_parameters_atomically': 'rcl_interfaces/srv/SetParametersAtomically',
115+
}
116+
builtin_service_count = len(expected_builtin_services)
108117

109118
@classmethod
110119
def setUpClass(
@@ -138,6 +147,13 @@ def launch_service_command(self, arguments):
138147
yield service_command
139148
cls.launch_service_command = launch_service_command
140149

150+
@classmethod
151+
def get_expected_builtin_services(cls, namespace: str, with_types: bool = False) -> list[str]:
152+
return [
153+
f'{namespace}/{srv_name}' + (f' [{srv_type}]' if with_types else '')
154+
for srv_name, srv_type in cls.expected_builtin_services.items()
155+
]
156+
141157
@launch_testing.markers.retry_on_failure(times=5, delay=1)
142158
def test_list_services(self):
143159
with self.launch_service_command(arguments=['list']) as service_command:
@@ -146,9 +162,7 @@ def test_list_services(self):
146162
assert launch_testing.tools.expect_output(
147163
expected_lines=itertools.chain(
148164
['/my_ns/echo'],
149-
itertools.repeat(re.compile(
150-
r'/my_ns/echo_server/.*parameter.*'
151-
), 6)
165+
self.get_expected_builtin_services('/my_ns/echo_server'),
152166
),
153167
text=service_command.output,
154168
strict=True
@@ -164,13 +178,9 @@ def test_list_hidden(self):
164178
assert launch_testing.tools.expect_output(
165179
expected_lines=itertools.chain(
166180
['/my_ns/_echo'],
167-
itertools.repeat(re.compile(
168-
r'/my_ns/_hidden_echo_server/.*parameter.*'
169-
), 6),
181+
self.get_expected_builtin_services('/my_ns/_hidden_echo_server'),
170182
['/my_ns/echo'],
171-
itertools.repeat(re.compile(
172-
r'/my_ns/echo_server/.*parameter.*'
173-
), 6)
183+
self.get_expected_builtin_services('/my_ns/echo_server'),
174184
),
175185
text=service_command.output,
176186
strict=True
@@ -184,10 +194,7 @@ def test_list_with_types(self):
184194
assert launch_testing.tools.expect_output(
185195
expected_lines=itertools.chain(
186196
['/my_ns/echo [test_msgs/srv/BasicTypes]'],
187-
itertools.repeat(re.compile(
188-
r'/my_ns/echo_server/.*parameter.*'
189-
r' \[rcl_interfaces/srv/.*Parameter.*\]'
190-
), 6)
197+
self.get_expected_builtin_services('/my_ns/echo_server', with_types=True)
191198
),
192199
text=service_command.output,
193200
strict=True
@@ -200,7 +207,7 @@ def test_list_count(self):
200207
assert service_command.exit_code == launch_testing.asserts.EXIT_OK
201208
output_lines = service_command.output.splitlines()
202209
assert len(output_lines) == 1
203-
assert int(output_lines[0]) == 7
210+
assert int(output_lines[0]) == self.builtin_service_count + 1
204211

205212
@launch_testing.markers.retry_on_failure(times=5, delay=1)
206213
def test_find(self):

0 commit comments

Comments
 (0)