From f04646ae3b4b9c971c4cd19ba3e77d2e00e5210d Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Thu, 23 Oct 2025 16:28:38 +0700 Subject: [PATCH] Make FindPackage substitutions a Path to get operator / Signed-off-by: Emerson Knapp --- launch_ros/launch_ros/substitutions/find_package.py | 5 +++-- .../test_launch_ros/substitutions/test_find_package.py | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/launch_ros/launch_ros/substitutions/find_package.py b/launch_ros/launch_ros/substitutions/find_package.py index 3858764cc..430adcf1a 100644 --- a/launch_ros/launch_ros/substitutions/find_package.py +++ b/launch_ros/launch_ros/substitutions/find_package.py @@ -25,11 +25,12 @@ from launch.launch_context import LaunchContext from launch.some_substitutions_type import SomeSubstitutionsType from launch.substitution import Substitution +from launch.substitutions import PathSubstitution from launch.utilities import normalize_to_list_of_substitutions from launch.utilities import perform_substitutions -class FindPackage(Substitution): +class FindPackage(PathSubstitution): """ Abstract base class for substitutions involving finding a package. @@ -41,7 +42,7 @@ def __init__( package: SomeSubstitutionsType, ) -> None: """Create a FindPackage substitution.""" - super().__init__() + super().__init__(self) self.__package = normalize_to_list_of_substitutions(package) @classmethod diff --git a/test_launch_ros/test/test_launch_ros/substitutions/test_find_package.py b/test_launch_ros/test/test_launch_ros/substitutions/test_find_package.py index f5c7c84a2..4197ff80e 100644 --- a/test_launch_ros/test/test_launch_ros/substitutions/test_find_package.py +++ b/test_launch_ros/test/test_launch_ros/substitutions/test_find_package.py @@ -36,3 +36,10 @@ def test_find_package_share(): package_prefix = Path(sub.perform(context)) package_xml_file = package_prefix / Path('package.xml') assert package_xml_file.is_file() + + +def test_find_package_paths(): + sub = FindPackageShare('launch_ros') / 'package.xml' + context = LaunchContext() + result_path = sub.perform(context) + assert Path(result_path).is_file()