def rm_link(self, payload): ''' This ``rm_link`` command will send a ``DISCONNECT`` control message to device application. ''' da_id = payload['da_id'] msg_id = str(uuid4()) # random mode = self.get_mode(payload) feature = payload[mode] pub = iot_conn_mgr.conns[UUID(payload['da_id'])].ctrl.pub try: topic = Link.pop(da_id, feature, mode) except ValueError as err: return self.send_error(payload, reason=str(err)) iot_conn_mgr.conns[UUID(da_id)].ctrl.add_res_callback( msg_id, *self.response_func( payload, on_success=self.rm_link_on_success(), on_error=None ) ) return ctrl.disconnect(msg_id, mode, feature, topic, pub)
def test_link_pop_unknown(_link): with pytest.raises(ValueError) as err: assert Link.pop('id', 'feature', 'idf') return 'unknown' in str(err)
def test_link_pop_key(_link): assert Link.add('id', 'feature', 'idf', 'topic') assert Link.select('id', 'feature', 'idf') == 'topic' assert Link.pop('id', 'feature', 'idf') == 'topic' assert Link.select('id', 'feature', 'idf') is None