def itoolkit_run_command(command): conn = dbi.connect() itransport = iDB2Call(conn) itool = iToolKit() itool.add(iCmd('command', command, {'error': 'on'})) itool.call(itransport) rc = IBMi_COMMAND_RC_UNEXPECTED out = '' err = '' command_output = itool.dict_out('command') if 'success' in command_output: rc = IBMi_COMMAND_RC_SUCCESS out = command_output['success'] elif 'error' in command_output: command_error = command_output['error'] if 'joblog' in command_error: rc = IBMi_COMMAND_RC_ERROR err = command_error['joblog'] else: # should not be here, must xmlservice has internal error rc = IBMi_COMMAND_RC_ITOOLKIT_NO_KEY_JOBLOG err = "iToolKit result dict does not have key 'joblog', the output is %s" % command_output else: # should not be here, must xmlservice has internal error rc = IBMi_COMMAND_RC_ITOOLKIT_NO_KEY_ERROR err = "iToolKit result dict does not have key 'error', the output is %s" % command_output return rc, out, err
def test_idb2call_with_uid_pwd(mocker, database_callproc): ibm_db = mocker.patch('itoolkit.db2.idb2call.ibm_db', create=True) connect = mocker.patch('itoolkit.db2.idb2call.connect', create=True) class MockConn(object): pass ibm_db.IBM_DBConnection = MockConn connect.return_value = database_callproc user = '******' password = '******' transport = iDB2Call(user, password) tk = iToolKit() out = transport.call(tk) assert isinstance(out, (bytes, str)) kwargs = dict(database='*LOCAL', user=user, password=password) connect.assert_called_once_with(**kwargs) cursor = database_callproc.cursor() cursor.callproc.assert_called_once() cursor.__iter__.assert_called_once()
def test_idb2call_transport_minimal_execute(database_execute): transport = iDB2Call(database_execute) tk = iToolKit() out = transport.call(tk) assert isinstance(out, (bytes, str)) cursor = database_execute.cursor() cursor.execute.assert_called_once() cursor.__iter__.assert_called_once()
def test_idb2call_with_ibm_db(mocker, database_callproc): ibm_db = mocker.patch('itoolkit.db2.idb2call.ibm_db', create=True) Connection = mocker.patch('itoolkit.db2.idb2call.Connection', create=True) # noqa N806 class MockConn(object): pass ibm_db.IBM_DBConnection = MockConn Connection.return_value = database_callproc conn = MockConn() transport = iDB2Call(conn) tk = iToolKit() out = transport.call(tk) assert isinstance(out, (bytes, str)) Connection.assert_called_once_with(conn) cursor = database_callproc.cursor() cursor.callproc.assert_called_once() cursor.__iter__.assert_called_once()
from itoolkit import iCmd, iData, iPgm, iToolKit from itoolkit.db2.idb2call import iDB2Call itransport = iDB2Call() itool = iToolKit() itool.add(iPgm('my_key', 'STRJVM', {'error': 'on', 'lib': 'QGPL'})) itool.call(itransport)
def getNonconfigureDisk(): conn = ibmi_util.itoolkit_init() itransport = iDB2Call(conn) itool = iToolKit() itool.add( iPgm('qyasrdi', 'QYASRDI').addParm( iDS('DMIN0100_t', { 'len': 'dmilen' }).addData(iData('dniRet', '10i0', '')).addData( iData('dmiAvl', '10i0', '')).addData(iData('dmiOfset', '10i0', '')).addData( iData('dmiNbr', '10i0', '', {'enddo': 'mycnt'})).addData( iData('dmiLen', '10i0', '')).addData( iData('dmiRes', '10i0', '')). addData( iDS('res_t', { 'dim': '999', 'dou': 'mycnt' }).addData(iData( 'resDurn', '10a', '')).addData(iData( 'resDuff', '1a', '')).addData(iData('resTrnaswdu', '10a', '')).addData( iData('resTnawdu', '4a', '')).addData( iData('resDuaindpsf', '1a', '')).addData( iData('resDuaiedpsf', '1a', '')).addData( iData('resRes', '5a', '')).addData( iData('resDpsn', '10i0', '')). addData(iData('resCaadps', '10i0', '')))).addParm( iData('rcvlen', '10i0', '', {'setlen': 'dmilen'})).addParm( iData('fmtnam', '10a', 'DMIN0100')).addParm( iData('dmiDurna', '10a', '*UNCONFIG')).addParm( iData('dmiNbr', '10i0', '1')).addParm( iDS('ERRC0100_t', { 'len': 'errlen' }).addData(iData( 'errRet', '10i0', '')).addData( iData('errAvl', '10i0', '')).addData( iData( 'errExp', '7A', '', {'setlen': 'errlen' })).addData( iData( 'errRsv', '1A', '')))) itool.call(itransport) qyasrdi = itool.dict_out('qyasrdi') diskList = '' if 'success' in qyasrdi: DMIN0100_t = qyasrdi['DMIN0100_t'] if int(DMIN0100_t['dmiNbr']) > 0: res_t = DMIN0100_t['res_t'] if int(DMIN0100_t['dmiNbr']) == 1: diskList = res_t['resDurn'] else: for rec in res_t: diskList += rec['resDurn'] + ' ' if diskList.endswith(' '): diskList = diskList[:-1] return diskList
def test_db2_import_ok(database): from itoolkit.db2.idb2call import iDB2Call with pytest.deprecated_call(): iDB2Call(database)