Skip to content

Commit 7ced745

Browse files
authored
fails the test properly to avoid TypeError exception. (#1016)
Signed-off-by: Tomoya Fujita <[email protected]>
1 parent 328aa61 commit 7ced745

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

ros2param/test/test_verb_load.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,13 @@ def test_verb_load_wildcard(self):
344344
) as param_dump_command:
345345
assert param_dump_command.wait_for_shutdown(timeout=TEST_TIMEOUT)
346346
assert param_dump_command.exit_code == launch_testing.asserts.EXIT_OK
347-
loaded_params = yaml.safe_load(param_dump_command.output)
348-
params = loaded_params[f'{TEST_NAMESPACE}/{TEST_NODE}']['ros__parameters']
347+
try:
348+
loaded_params = yaml.safe_load(param_dump_command.output)
349+
if not isinstance(loaded_params, dict):
350+
self.fail('Invalid YAML output: Expected a dictionary')
351+
params = loaded_params[f'{TEST_NAMESPACE}/{TEST_NODE}']['ros__parameters']
352+
except yaml.YAMLError as e:
353+
self.fail(f'Failed to parse YAML output: {e}')
349354
assert params['str_param'] == 'Wildcard'
350355
assert params['int_param'] == 12345
351356

@@ -365,8 +370,13 @@ def test_verb_load_wildcard(self):
365370
) as param_dump_command:
366371
assert param_dump_command.wait_for_shutdown(timeout=TEST_TIMEOUT)
367372
assert param_dump_command.exit_code == launch_testing.asserts.EXIT_OK
368-
loaded_params = yaml.safe_load(param_dump_command.output)
369-
params = loaded_params[f'{TEST_NAMESPACE}/{TEST_NODE}']['ros__parameters']
373+
try:
374+
loaded_params = yaml.safe_load(param_dump_command.output)
375+
if not isinstance(loaded_params, dict):
376+
self.fail('Invalid YAML output: Expected a dictionary')
377+
params = loaded_params[f'{TEST_NAMESPACE}/{TEST_NODE}']['ros__parameters']
378+
except yaml.YAMLError as e:
379+
self.fail(f'Failed to parse YAML output: {e}')
370380
assert params['str_param'] == 'Override' # Overriden
371381
assert params['int_param'] == 12345 # Wildcard namespace
372382

@@ -386,7 +396,12 @@ def test_verb_load_wildcard(self):
386396
) as param_dump_command:
387397
assert param_dump_command.wait_for_shutdown(timeout=TEST_TIMEOUT)
388398
assert param_dump_command.exit_code == launch_testing.asserts.EXIT_OK
389-
loaded_params = yaml.safe_load(param_dump_command.output)
390-
params = loaded_params[f'{TEST_NAMESPACE}/{TEST_NODE}']['ros__parameters']
399+
try:
400+
loaded_params = yaml.safe_load(param_dump_command.output)
401+
if not isinstance(loaded_params, dict):
402+
self.fail('Invalid YAML output: Expected a dictionary')
403+
params = loaded_params[f'{TEST_NAMESPACE}/{TEST_NODE}']['ros__parameters']
404+
except yaml.YAMLError as e:
405+
self.fail(f'Failed to parse YAML output: {e}')
391406
assert params['str_param'] == 'Override' # Overriden
392407
assert params['int_param'] == 12345 # Wildcard namespace

0 commit comments

Comments
 (0)