def test_connect_disconnect(connect_msg, msg_id, topic, connection_cmd, mode): def mock_pub(payload): assert payload == connect_msg if connection_cmd == 'CONNECT': connect(msg_id=msg_id, mode=mode, feature='meow', topic=topic, pub=mock_pub) elif connection_cmd == 'DISCONNECT': disconnect(msg_id=msg_id, mode=mode, feature='meow', topic=topic, pub=mock_pub)
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)