diff --git a/ros2cli/test/test_daemon.py b/ros2cli/test/test_daemon.py index ce05b1c5a..9d0861ec5 100644 --- a/ros2cli/test/test_daemon.py +++ b/ros2cli/test/test_daemon.py @@ -52,57 +52,54 @@ @pytest.fixture(autouse=True, scope='module') def local_node(): - rclpy.init() - node = rclpy.create_node( - node_name=TEST_NODE_NAME, namespace=TEST_NODE_NAMESPACE - ) - publisher = node.create_publisher( - msg_type=test_msgs.msg.Empty, - topic=TEST_TOPIC_NAME, - qos_profile=TEST_TOPIC_PUBLISHER_QOS - ) - subscription = node.create_subscription( - msg_type=test_msgs.msg.Empty, - topic=TEST_TOPIC_NAME, - callback=(lambda msg: None), - qos_profile=TEST_TOPIC_SUBSCRIPTION_QOS - ) - service = node.create_service( - srv_type=test_msgs.srv.Empty, - srv_name=TEST_SERVICE_NAME, - callback=(lambda req, res: res) - ) - client = node.create_client( - srv_type=test_msgs.srv.Empty, - srv_name=TEST_SERVICE_NAME - ) - - def noop_execute_callback(goal_handle): - goal_handle.succeed() - return test_msgs.action.Fibonacci.Result() + with rclpy.init(): + node = rclpy.create_node( + node_name=TEST_NODE_NAME, namespace=TEST_NODE_NAMESPACE + ) + publisher = node.create_publisher( + msg_type=test_msgs.msg.Empty, + topic=TEST_TOPIC_NAME, + qos_profile=TEST_TOPIC_PUBLISHER_QOS + ) + publisher # to avoid "assigned by never used" warning + subscription = node.create_subscription( + msg_type=test_msgs.msg.Empty, + topic=TEST_TOPIC_NAME, + callback=(lambda msg: None), + qos_profile=TEST_TOPIC_SUBSCRIPTION_QOS + ) + subscription # to avoid "assigned by never used" warning + service = node.create_service( + srv_type=test_msgs.srv.Empty, + srv_name=TEST_SERVICE_NAME, + callback=(lambda req, res: res) + ) + service # to avoid "assigned by never used" warning + client = node.create_client( + srv_type=test_msgs.srv.Empty, + srv_name=TEST_SERVICE_NAME + ) + client # to avoid "assigned by never used" warning + + def noop_execute_callback(goal_handle): + goal_handle.succeed() + return test_msgs.action.Fibonacci.Result() + + action_server = rclpy.action.ActionServer( + node=node, + action_type=test_msgs.action.Fibonacci, + action_name=TEST_ACTION_NAME, + execute_callback=noop_execute_callback + ) + action_server # to avoid "assigned by never used" warning + action_client = rclpy.action.ActionClient( + node=node, + action_type=test_msgs.action.Fibonacci, + action_name=TEST_ACTION_NAME + ) + action_client # to avoid "assigned by never used" warning - action_server = rclpy.action.ActionServer( - node=node, - action_type=test_msgs.action.Fibonacci, - action_name=TEST_ACTION_NAME, - execute_callback=noop_execute_callback - ) - action_client = rclpy.action.ActionClient( - node=node, - action_type=test_msgs.action.Fibonacci, - action_name=TEST_ACTION_NAME - ) - try: yield node - finally: - action_client.destroy() - action_server.destroy() - node.destroy_client(client) - node.destroy_service(service) - node.destroy_subscription(subscription) - node.destroy_publisher(publisher) - node.destroy_node() - rclpy.shutdown() @pytest.fixture(scope='module') diff --git a/ros2service/test/fixtures/introspectable.py b/ros2service/test/fixtures/introspectable.py index 70c00c627..1f683e958 100644 --- a/ros2service/test/fixtures/introspectable.py +++ b/ros2service/test/fixtures/introspectable.py @@ -69,24 +69,18 @@ def timer_callback(self): def main(args=None): - rclpy.init(args=args) - - service_node = IntrospectableService() - client_node = IntrospectableClient() + try: + with rclpy.init(args=args): + service_node = IntrospectableService() + client_node = IntrospectableClient() - executor = SingleThreadedExecutor() - executor.add_node(service_node) - executor.add_node(client_node) + executor = SingleThreadedExecutor() + executor.add_node(service_node) + executor.add_node(client_node) - try: - executor.spin() + executor.spin() except (KeyboardInterrupt, ExternalShutdownException): - executor.remove_node(client_node) - executor.remove_node(service_node) - executor.shutdown() - service_node.destroy_node() - client_node.destroy_node() - rclpy.try_shutdown() + pass if __name__ == '__main__':