def start(self):
     req = self.srvClass._request_class()
     gen = c.extract_values(req)
     gen = populate_random_args(gen)
     self.input = gen
     services.ServiceCaller(self.name, gen, self.success,
                            self.error).start()
Esempio n. 2
0
    def test_service_caller(self):
        """ Same as test_service_call but via the thread caller """
        # First, call the service the 'proper' way
        p = rospy.ServiceProxy("/rosout/get_loggers", GetLoggers)
        ret = p()

        rcvd = {"json": None}

        def success(json):
            rcvd["json"] = json

        def error():
            raise Exception()

        # Now, call using the services
        services.ServiceCaller("/rosout/get_loggers", None, success, error).start()

        time.sleep(0.5)

        for x, y in zip(ret.loggers, rcvd["json"]["loggers"]):
            self.assertEqual(x.name, y["name"])
            self.assertEqual(x.level, y["level"])