def testGenerateExecutableScript(self): listCommands = ['COMMAND1', 'COMMAND2 BANANA'] edPluginExecProcessScript = EDPluginExecProcessScript() edPluginExecProcessScript.setScriptShell("/bin/bash") edPluginExecProcessScript.setScriptBaseName("TestCaseGenerateScript") edPluginExecProcessScript.setListCommandExecution(listCommands) edPluginExecProcessScript.setRequireCCP4(True) edPluginExecProcessScript.setSetupCCP4("/usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash") edPluginExecProcessScript.setScriptExecutable("cat") edPluginExecProcessScript.configure() strScript = edPluginExecProcessScript.prepareScript() edPluginExecProcessScript.writeExecutableScript(strScript) strScriptFileName = edPluginExecProcessScript.getScriptFileName() strScriptFromFile = edPluginExecProcessScript.readProcessFile(strScriptFileName) lstScriptReference = ["#!/bin/bash", "cd %s" % edPluginExecProcessScript.getWorkingDirectory(), ". /usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash", "cat > TestCaseGenerateScript.log 2> TestCaseGenerateScript.err << EOF-EDPluginExecProcessScript &", "COMMAND1", "COMMAND2 BANANA", "EOF-EDPluginExecProcessScript", "ednaJobPid=$!", "ednaJobHostName=$(hostname)", 'echo "$ednaJobHostName $ednaJobPid" > %s' % edPluginExecProcessScript.getPathToHostNamePidFile(), "wait $ednaJobPid", ""] strScriptReference = EDUtilsPlatform.linesep.join(lstScriptReference) EDAssert.equal(strScriptFromFile, strScriptReference)
def testGenerateExecutableScript(self): listCommands = ['COMMAND1', 'COMMAND2 BANANA'] edPluginExecProcessScript = EDPluginExecProcessScript() edPluginExecProcessScript.setScriptShell("/bin/bash") edPluginExecProcessScript.setScriptBaseName("TestCaseGenerateScript") edPluginExecProcessScript.setListCommandExecution(listCommands) edPluginExecProcessScript.setRequireCCP4(True) edPluginExecProcessScript.setSetupCCP4("/usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash") edPluginExecProcessScript.setScriptExecutable("cat") edPluginExecProcessScript.configure() strScript = edPluginExecProcessScript.prepareScript() edPluginExecProcessScript.writeExecutableScript(strScript) strScriptFileName = edPluginExecProcessScript.getScriptFileName() strScriptFromFile = edPluginExecProcessScript.readProcessFile(strScriptFileName) lstScriptReference = ["#!/bin/bash", "cd %s" % edPluginExecProcessScript.getWorkingDirectory(), ". /usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash", "cat > TestCaseGenerateScript.log 2> TestCaseGenerateScript.err << EOF-EDPluginExecProcessScript &", "COMMAND1", "COMMAND2 BANANA", "EOF-EDPluginExecProcessScript", "ednaJobPid=$!", "ednaJobHostName=$(hostname)", 'echo "$ednaJobHostName $ednaJobPid" > %s' % edPluginExecProcessScript.getPathToHostNamePidFile(), "wait $ednaJobPid", ""] strScriptReference = EDUtilsPlatform.linesep.join(lstScriptReference) EDAssert.equal(strScriptFromFile, strScriptReference)
def testExecuteScript(self): listCommandExecution = list(['COMMAND1', 'COMMAND2 BANANA']) strLogReference = EDUtilsPlatform.linesep.join(["COMMAND1", "COMMAND2 BANANA", ""]) edPluginExecProcessScript = EDPluginExecProcessScript() edPluginExecProcessScript.setListCommandExecution(listCommandExecution) edPluginExecProcessScript.setRequireCCP4(False) edPluginExecProcessScript.setScriptExecutable("%s %s" % (sys.executable, os.path.join(os.environ["EDNA_HOME"], "edna-kernel", "bin", "cat.py"))) edPluginExecProcessScript.setTimeOut(15.0) edPluginExecProcessScript.setScriptShell("python") from XSDataCommon import XSData edPluginExecProcessScript.setXSDataInputClass(XSData) edPluginExecProcessScript.execute() edPluginExecProcessScript.synchronize() strScriptLogFileName = edPluginExecProcessScript.getScriptLogFileName() strLogFromFile = edPluginExecProcessScript.readProcessLogFile() EDAssert.equal(strLogFromFile, strLogReference)
def testExecuteScript(self): listCommandExecution = list(['COMMAND1', 'COMMAND2 BANANA']) strLogReference = EDUtilsPlatform.linesep.join(["COMMAND1", "COMMAND2 BANANA", ""]) edPluginExecProcessScript = EDPluginExecProcessScript() edPluginExecProcessScript.setListCommandExecution(listCommandExecution) edPluginExecProcessScript.setRequireCCP4(False) edPluginExecProcessScript.setScriptExecutable("%s %s" % (sys.executable, os.path.join(EDUtilsPath.EDNA_HOME, "kernel", "bin", "cat.py"))) edPluginExecProcessScript.setTimeOut(15.0) edPluginExecProcessScript.setScriptShell("python") from XSDataCommon import XSData edPluginExecProcessScript.setXSDataInputClass(XSData) edPluginExecProcessScript.execute() edPluginExecProcessScript.synchronize() strScriptLogFileName = edPluginExecProcessScript.getScriptLogFileName() strLogFromFile = edPluginExecProcessScript.readProcessLogFile() EDAssert.equal(strLogFromFile, strLogReference)