Module EDTestCaseEDPluginExecProcessScript
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 __authors__ = [ "Marie-Francoise Incardona", "Olof Svensson" ]
30 __contact__ = "svensson@esrf.fr"
31 __license__ = "LGPLv3+"
32 __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
33
34 """
35 The purpose of this plugin execute class is to be subclassed for
36 creating plugins that execute external programs through scripts.
37 """
38
39 import os, sys
40 from EDAssert import EDAssert
41 from EDPluginExecProcessScript import EDPluginExecProcessScript
42 from EDTestCase import EDTestCase
43 from EDUtilsPlatform import EDUtilsPlatform
44 from EDUtilsPath import EDUtilsPath
45
47
48
49 - def __init__(self, _strTestName="EDTestCaseEDPluginExecProcessScript"):
51
52
54 listCommandPreExecution = ['PRE-EXECUTION1', 'PRE-EXECUTION2 PATATE']
55 listCommandExecution = ['COMMAND1', 'COMMAND2 BANANA']
56 listCommandPostExecution = ['POST-EXECUTION1', 'POST-EXECUTION2 FRAISE']
57 edPluginExecProcessScript = EDPluginExecProcessScript()
58 edPluginExecProcessScript.setScriptShell("/bin/bash")
59 edPluginExecProcessScript.setScriptBaseName("TestCaseGenerateScript")
60 edPluginExecProcessScript.setListCommandPreExecution(listCommandPreExecution)
61 edPluginExecProcessScript.setListCommandExecution(listCommandExecution)
62 edPluginExecProcessScript.setListCommandPostExecution(listCommandPostExecution)
63 edPluginExecProcessScript.setRequireCCP4(True)
64 edPluginExecProcessScript.setSetupCCP4("/usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash")
65 edPluginExecProcessScript.setScriptExecutable("cat")
66 edPluginExecProcessScript.configure()
67 strScript = edPluginExecProcessScript.prepareScript()
68 lstScriptReference = ["#!/bin/bash",
69 "cd %s" % edPluginExecProcessScript.getWorkingDirectory(),
70 ". /usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash",
71 "PRE-EXECUTION1",
72 "PRE-EXECUTION2 PATATE",
73 "cat > TestCaseGenerateScript.log 2> TestCaseGenerateScript.err << EOF-EDPluginExecProcessScript &",
74 "COMMAND1",
75 "COMMAND2 BANANA",
76 "EOF-EDPluginExecProcessScript",
77 "ednaJobPid=$!",
78 "ednaJobHostName=$(hostname)",
79 'echo "$ednaJobHostName $ednaJobPid" > %s' % edPluginExecProcessScript.getPathToHostNamePidFile(),
80 'wait $ednaJobPid',
81 'POST-EXECUTION1',
82 'POST-EXECUTION2 FRAISE',
83 '']
84 strScriptReference = EDUtilsPlatform.linesep.join(lstScriptReference)
85 EDAssert.equal(strScriptReference, strScript)
86
87
88
90 listCommands = ['COMMAND1', 'COMMAND2 BANANA']
91 edPluginExecProcessScript = EDPluginExecProcessScript()
92 edPluginExecProcessScript.setScriptShell("/bin/bash")
93 edPluginExecProcessScript.setScriptBaseName("TestCaseGenerateScript")
94 edPluginExecProcessScript.setListCommandExecution(listCommands)
95 edPluginExecProcessScript.setRequireCCP4(True)
96 edPluginExecProcessScript.setSetupCCP4("/usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash")
97 edPluginExecProcessScript.setScriptExecutable("cat")
98 edPluginExecProcessScript.configure()
99 strScript = edPluginExecProcessScript.prepareScript()
100 edPluginExecProcessScript.writeExecutableScript(strScript)
101 strScriptFileName = edPluginExecProcessScript.getScriptFileName()
102 strScriptFromFile = edPluginExecProcessScript.readProcessFile(strScriptFileName)
103 lstScriptReference = ["#!/bin/bash",
104 "cd %s" % edPluginExecProcessScript.getWorkingDirectory(),
105 ". /usr/local/xtal/ccp4-6.0.2/include/ccp4.setup-bash",
106 "cat > TestCaseGenerateScript.log 2> TestCaseGenerateScript.err << EOF-EDPluginExecProcessScript &",
107 "COMMAND1",
108 "COMMAND2 BANANA",
109 "EOF-EDPluginExecProcessScript",
110 "ednaJobPid=$!",
111 "ednaJobHostName=$(hostname)",
112 'echo "$ednaJobHostName $ednaJobPid" > %s' % edPluginExecProcessScript.getPathToHostNamePidFile(),
113 "wait $ednaJobPid",
114 ""]
115 strScriptReference = EDUtilsPlatform.linesep.join(lstScriptReference)
116 EDAssert.equal(strScriptFromFile, strScriptReference)
117
118
137
138
143
144
145 if __name__ == '__main__':
146
147 edTestCaseEDPluginExecProcessScript = EDTestCaseEDPluginExecProcessScript("TestCase EDPluginExecProcessScript")
148 edTestCaseEDPluginExecProcessScript.execute()
149