Skip to content

Commit 1481233

Browse files
committed
run tests in a propery isolated soma-workflow
1 parent f8d785a commit 1481233

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

capsul/pipeline/test/test_pipeline_workflow.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@
1111
from capsul.api import Pipeline, PipelineNode
1212
from capsul.pipeline import pipeline_workflow
1313
from capsul.study_config.study_config import StudyConfig
14+
from soma_workflow.configuration import \
15+
change_soma_workflow_directory, restore_soma_workflow_directory
1416
import tempfile
1517
import shutil
18+
import socket
1619

1720

1821
class DummyProcess(Process):
@@ -154,12 +157,22 @@ def pipeline_definition(self):
154157

155158
class TestPipelineWorkflow(unittest.TestCase):
156159

160+
_swf_dir = None
161+
157162
def setUp(self):
163+
# use a custom temporary soma-workflow dir to avoid concurrent
164+
# access problems
165+
if TestPipelineWorkflow._swf_dir is None:
166+
TestPipelineWorkflow._swf_dir = tempfile.mkdtemp()
167+
change_soma_workflow_directory(TestPipelineWorkflow._swf_dir,
168+
socket.gethostname())
169+
170+
self.tmpdir = tempfile.mkdtemp()
171+
158172
study_config = StudyConfig() #modules=StudyConfig.default_modules \
159-
#+ ['FomConfig'])
173+
#+ ['FomConfig'])
160174
self.pipeline = DummyPipeline()
161175
self.pipeline.set_study_config(study_config)
162-
self.tmpdir = tempfile.mkdtemp()
163176
self.pipeline.input = osp.join(self.tmpdir, 'file_in.nii')
164177
self.pipeline.output1 = osp.join(self.tmpdir, 'file_out1.nii')
165178
self.pipeline.output2 = osp.join(self.tmpdir, 'file_out2.nii')
@@ -189,11 +202,21 @@ def setUp(self):
189202
def tearDown(self):
190203
for exec_id in self.exec_ids:
191204
self.study_config.engine.dispose(exec_id)
205+
del self.study_config
192206
try:
193207
shutil.rmtree(self.tmpdir)
194208
except Exception:
195209
pass
196210

211+
def tearDownClass():
212+
if TestPipelineWorkflow._swf_dir is not None:
213+
restore_soma_workflow_directory()
214+
try:
215+
shutil.rmtree(TestPipelineWorkflow._swf_dir)
216+
TestPipelineWorkflow._swf_dir = None
217+
except Exception:
218+
pass
219+
197220
def test_requirements(self):
198221
engine = self.study_config.engine
199222
with engine.settings as session:

0 commit comments

Comments
 (0)