55import unittest
66from json import dumps , loads
77from threading import Thread
8- from typing import Any
8+ from typing import TYPE_CHECKING , Any
99
1010import rclpy
1111from rclpy .callback_groups import ReentrantCallbackGroup
2020)
2121from rosbridge_library .protocol import Protocol
2222
23+ if TYPE_CHECKING :
24+ from std_srvs .srv import SetBool_Request , SetBool_Response , Trigger_Request , Trigger_Response
25+
2326
2427class TestCallService (unittest .TestCase ):
25- def trigger_cb (self , _request : Trigger . Request , response : Trigger . Response ) -> Trigger . Response :
28+ def trigger_cb (self , _request : Trigger_Request , response : Trigger_Response ) -> Trigger_Response :
2629 """Handle request for a test service with no arguments."""
2730 response .success = True
2831 response .message = "called trigger service successfully"
2932 return response
3033
3134 def trigger_long_cb (
32- self , _request : Trigger . Request , response : Trigger . Response
33- ) -> Trigger . Response :
35+ self , _request : Trigger_Request , response : Trigger_Response
36+ ) -> Trigger_Response :
3437 """Handle request for a long running test service with no arguments."""
3538 time .sleep (0.5 )
3639 response .success = True
3740 response .message = "called trigger service successfully"
3841 return response
3942
40- def set_bool_cb (self , request : SetBool . Request , response : SetBool . Response ) -> SetBool . Response :
43+ def set_bool_cb (self , request : SetBool_Request , response : SetBool_Response ) -> SetBool_Response :
4144 """Handle request for a test service with arguments."""
4245 response .success = request .data
4346 if request .data :
@@ -61,19 +64,19 @@ def setUp(self) -> None:
6164 # Create service servers with a separate callback group
6265 self .cb_group = ReentrantCallbackGroup ()
6366 self .trigger_srv = self .node .create_service (
64- Trigger , # type: ignore[arg-type]
67+ Trigger ,
6568 self .node .get_name () + "/trigger" ,
6669 self .trigger_cb ,
6770 callback_group = self .cb_group ,
6871 )
6972 self .trigger_long_srv = self .node .create_service (
70- Trigger , # type: ignore[arg-type]
73+ Trigger ,
7174 self .node .get_name () + "/trigger_long" ,
7275 self .trigger_long_cb ,
7376 callback_group = self .cb_group ,
7477 )
7578 self .set_bool_srv = self .node .create_service (
76- SetBool , # type: ignore[arg-type]
79+ SetBool ,
7780 self .node .get_name () + "/set_bool" ,
7881 self .set_bool_cb ,
7982 callback_group = self .cb_group ,
@@ -104,7 +107,7 @@ def test_invalid_arguments(self) -> None:
104107
105108 def test_call_service_works (self ) -> None :
106109 client = self .node .create_client (
107- Trigger , # type: ignore[arg-type]
110+ Trigger ,
108111 self .trigger_srv .srv_name ,
109112 )
110113 assert client .wait_for_service (1.0 )
@@ -135,7 +138,7 @@ def cb(
135138
136139 def test_call_service_args (self ) -> None :
137140 client = self .node .create_client (
138- SetBool , # type: ignore[arg-type]
141+ SetBool ,
139142 self .set_bool_srv .srv_name ,
140143 )
141144 assert client .wait_for_service (1.0 )
@@ -173,7 +176,7 @@ def cb(
173176
174177 def test_call_service_fails (self ) -> None :
175178 client = self .node .create_client (
176- Trigger , # type: ignore[arg-type]
179+ Trigger ,
177180 self .trigger_srv .srv_name ,
178181 )
179182 assert client .wait_for_service (1.0 )
@@ -210,7 +213,7 @@ def cb(
210213
211214 def test_call_service_timeout (self ) -> None :
212215 client = self .node .create_client (
213- Trigger , # type: ignore[arg-type]
216+ Trigger ,
214217 self .trigger_long_srv .srv_name ,
215218 )
216219 assert client .wait_for_service (1.0 )
0 commit comments