def observe(self, client_callback, *args, **kwargs): if isinstance(args[0], str): path = str(args[0]) req = Request() req.uri_path = path if "Token" in kwargs.keys(): req.token = kwargs.get("Token") del kwargs["Token"] if "MID" in kwargs.keys(): req.mid = kwargs.get("MID") del kwargs["MID"] if "Server" in kwargs.keys(): req.destination = kwargs.get("Server") del kwargs["Server"] else: req = args[0] assert(isinstance(req, Request)) path = req.uri_path for key in kwargs: try: o = Option() o.number = defines.inv_options[key] o.value = kwargs[key] req.add_option(o) except KeyError: pass req.code = defines.inv_codes['GET'] req.uri_path = path req.observe = 0 req.type = defines.inv_types["CON"] self.send_callback(req, self.observe_results, client_callback)
def test_td_coap_obs_01(self): print("TD_COAP_OBS_01") path = "/obs" req = Request() req.code = defines.Codes.GET.number req.uri_path = path req.type = defines.Types["CON"] req._mid = self.current_mid req.destination = self.server_address req.observe = 0 expected = Response() expected.type = defines.Types["ACK"] expected._mid = self.current_mid expected.code = defines.Codes.CONTENT.number expected.token = None expected.payload = "Observable Resource" expected.observe = 1 expected2 = Response() expected2.type = defines.Types["CON"] expected2._mid = self.server_mid expected2.code = defines.Codes.CONTENT.number expected2.token = None expected2.payload = "Observable Resource" expected2.observe = 1 self.current_mid += 1 self.server_mid += 1 self._test_plugtest([(req, expected), (None, expected2)])
def test_td_coap_obs_01(self): print "TD_COAP_OBS_01" path = "/obs" req = Request() req.code = defines.inv_codes['GET'] req.uri_path = path req.type = defines.inv_types["CON"] req._mid = self.current_mid req.destination = self.server_address req.observe = 0 expected = Response() expected.type = defines.inv_types["ACK"] expected._mid = self.current_mid expected.code = defines.responses["CONTENT"] expected.token = None expected.payload = "Observable Resource" expected.observe = 1 expected2 = Response() expected2.type = defines.inv_types["CON"] expected2._mid = self.server_mid expected2.code = defines.responses["CONTENT"] expected2.token = None expected2.payload = "Observable Resource" expected2.observe = 2 self.current_mid += 1 self.server_mid += 1 self._test_plugtest([(req, expected), (None, expected2)])
def observe(self, path, callback): # pragma: no cover request = Request() request.destination = self.server request.code = defines.Codes.GET.number request.uri_path = path request.observe = 0 if callback is not None: thread = threading.Thread(target=self._thread_body, args=(request, callback)) thread.start() else: self.protocol.send_message(request) response = self.queue.get(block=True) return response
def observe(self, path, callback, timeout=None): # pragma: no cover request = Request() request.destination = self.server request.code = defines.Codes.GET.number request.uri_path = path request.observe = 0 if callback is not None: thread = threading.Thread(target=self._thread_body, args=(request, callback)) thread.start() else: self.protocol.send_message(request) response = self.queue.get(block=True, timeout=timeout) return response
def observe(self, client_callback, *args, **kwargs): path = args[0] req = Request() if "Token" in kwargs.keys(): req.token = kwargs.get("Token") del kwargs["Token"] for key in kwargs: o = Option() o.number = defines.inv_options[key] o.value = kwargs[key] req.add_option(o) req.code = defines.inv_codes['GET'] req.uri_path = path req.observe = 0 req.type = defines.inv_types["CON"] self.send_callback(req, self.observe_results, client_callback)
def test_td_coap_obs_03(self): print "TD_COAP_OBS_03" path = "/obs" req = Request() req.code = defines.Codes.GET.number req.uri_path = path req.type = defines.Types["CON"] req._mid = self.current_mid req.destination = self.server_address req.observe = 0 expected = Response() expected.type = defines.Types["ACK"] expected._mid = self.current_mid expected.code = defines.Codes.CONTENT.number expected.token = None expected.payload = "Observable Resource" expected.observe = 1 self.current_mid += 1 expected2 = Response() expected2.type = defines.Types["CON"] expected2._mid = self.server_mid expected2.code = defines.Codes.CONTENT.number expected2.token = None expected2.payload = "Observable Resource" expected2.observe = 1 rst = Response() rst.type = defines.Types["RST"] rst._mid = self.server_mid rst.code = defines.Codes.EMPTY.number rst.destination = self.server_address rst.token = None rst.payload = None self.current_mid += 1 self.server_mid += 1 self._test_plugtest([(req, expected), (None, expected2), (rst, None)])
def observe(self, *args, **kwargs): """ :param args: request object :param kwargs: dictionary with parameters """ if len(args) > 0: request = args[0] assert isinstance(request, Request) endpoint = request.destination else: request = Request() path = kwargs["path"] assert isinstance(path, str) ip, port, path = self.parse_path(path) request.destination = (ip, port) request.uri_path = path endpoint = (ip, port) request.code = defines.inv_codes["GET"] request.observe = 0 self.send(request, endpoint)
def introspect_observe(self, path, bearer, callback=None, access_path=None): request = Request() request.destination = self.server request.code = defines.Codes.GET.number request.uri_path = path request.bearer = bearer # request.token = generate_random_token(5) request.observe = 0 request.token_type_hint = "code" request.scope = access_path if callback is not None: thread = threading.Thread(target=self._thread_body, args=(request, callback)) thread.start() else: self.protocol.send_message(request) response = self.queue.get(block=True) return response