Skip to content

Commit 98ad8cd

Browse files
committed
🧪 Ensure subdirectory in executor tests
1 parent 5dcf22f commit 98ad8cd

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

‎tests/functional/test_executor.py

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import contextlib
12
import typing
3+
import uuid
24
import pytest
35
import simvue
46
import time
@@ -8,7 +10,10 @@
810
import os
911
import multiprocessing
1012
import multiprocessing.synchronize
11-
13+
14+
from simvue.api.objects.folder import Folder
15+
from simvue.exception import ObjectNotFoundError
16+
1217

1318
@pytest.mark.executor
1419
@pytest.mark.parametrize("successful", (True, False), ids=("successful", "failing"))
@@ -18,6 +23,9 @@ def test_executor_add_process(
1823
) -> None:
1924
import logging
2025
trigger = multiprocessing.Event()
26+
folder_id = f"{uuid.uuid4()}".split("-")[0]
27+
folder = Folder.new(path=f"/simvue_unit_testing/{folder_id}")
28+
folder.commit()
2129

2230
def completion_callback(*_, trigger=trigger, **__):
2331
trigger.set()
@@ -26,7 +34,8 @@ def completion_callback(*_, trigger=trigger, **__):
2634
run.init(
2735
f"test_executor_{'success' if successful else 'fail'}",
2836
tags=["simvue_client_unit_tests", request.node.name.replace("[", "_").replace("]", "_")],
29-
folder="/simvue_unit_testing"
37+
folder=f"/simvue_unit_testing/{folder_id}",
38+
retention_period="2 mins"
3039
)
3140
run.add_process(
3241
identifier=f"test_add_process_{'success' if successful else 'fail'}",
@@ -44,18 +53,24 @@ def completion_callback(*_, trigger=trigger, **__):
4453
with pytest.raises(SystemExit):
4554
run.close()
4655

56+
with contextlib.suppress(ObjectNotFoundError):
57+
folder.delete(recursive=True, delete_runs=True)
58+
4759

4860
@pytest.mark.executor
4961
@pytest.mark.unix
5062
def test_executor_multiprocess(request: pytest.FixtureRequest) -> None:
5163
triggers: dict[int, multiprocessing.synchronize.Event] = {}
5264
callbacks: dict[int, typing.Callable] = {}
5365
events: dict[int, bool] = {}
66+
folder_id = f"{uuid.uuid4()}".split("-")[0]
67+
folder = Folder.new(path=f"/simvue_unit_testing/{folder_id}")
68+
folder.commit()
5469
with tempfile.TemporaryDirectory() as tempd:
5570
with simvue.Run() as run:
5671
run.init(
5772
"test_executor_multiprocess",
58-
folder="/simvue_unit_testing",
73+
folder=f"/simvue_unit_testing/{folder_id}",
5974
tags=["simvue_client_tests", request.node.name]
6075
)
6176

@@ -82,10 +97,15 @@ def callback(*_, evts=events, ident=i, **__):
8297
for i in range(10):
8398
os.remove(f"test_executor_multiprocess_cmd_{i}.err")
8499
os.remove(f"test_executor_multiprocess_cmd_{i}.out")
100+
with contextlib.suppress(ObjectNotFoundError):
101+
folder.delete(recursive=True, delete_runs=True)
85102

86103

87104
@pytest.mark.executor
88105
def test_add_process_command_assembly(request: pytest.FixtureRequest) -> None:
106+
folder_id = f"{uuid.uuid4()}".split("-")[0]
107+
folder = Folder.new(path=f"/simvue_unit_testing/{folder_id}")
108+
folder.commit()
89109
with tempfile.TemporaryDirectory() as tempd:
90110
_python_script="""
91111
import argparse
@@ -115,7 +135,7 @@ def test_add_process_command_assembly(request: pytest.FixtureRequest) -> None:
115135
with simvue.Run() as run:
116136
run.init(
117137
"test_advanced_executor",
118-
folder="/simvue_unit_testing",
138+
folder=f"/simvue_unit_testing/{folder_id}",
119139
tags=["simvue_client_tests", request.node.name]
120140
)
121141
run.add_process(
@@ -126,17 +146,22 @@ def test_add_process_command_assembly(request: pytest.FixtureRequest) -> None:
126146
output_file=out_file
127147
)
128148
assert run._executor.command_str[exe_id] == expected_cmd
149+
with contextlib.suppress(ObjectNotFoundError):
150+
folder.delete(recursive=True, delete_runs=True)
129151

130152
@pytest.mark.executor
131153
def test_completion_callbacks_var_change(request: pytest.FixtureRequest) -> None:
132154
success: dict[str, bool] = {"complete": False}
133155
def completion_callback(*_, success: dict[str, bool]=success, **__):
134156
success["complete"] = True
157+
folder_id = f"{uuid.uuid4()}".split("-")[0]
158+
folder = Folder.new(path=f"/simvue_unit_testing/{folder_id}")
159+
folder.commit()
135160

136161
with simvue.Run() as run:
137162
run.init(
138163
"test_completion_callbacks_var_change",
139-
folder="/simvue_unit_testing",
164+
folder=f"/simvue_unit_testing/{folder_id}",
140165
tags=["simvue_client_tests", request.node.name]
141166
)
142167
run.add_process(
@@ -150,16 +175,21 @@ def completion_callback(*_, success: dict[str, bool]=success, **__):
150175
time.sleep(1)
151176

152177
assert success["complete"]
178+
with contextlib.suppress(ObjectNotFoundError):
179+
folder.delete(recursive=True, delete_runs=True)
153180

154181
@pytest.mark.executor
155182
@pytest.mark.unix
156183
def test_completion_trigger_set(request: pytest.FixtureRequest) -> None:
157184
trigger = multiprocessing.Event()
185+
folder_id = f"{uuid.uuid4()}".split("-")[0]
186+
folder = Folder.new(path=f"/simvue_unit_testing/{folder_id}")
187+
folder.commit()
158188

159189
with simvue.Run() as run:
160190
run.init(
161191
"test_completion_trigger_set",
162-
folder="/simvue_unit_testing",
192+
folder=f"/simvue_unit_testing/{folder_id}",
163193
tags=["simvue_client_tests", request.node.name]
164194
)
165195
run.add_process(
@@ -173,6 +203,8 @@ def test_completion_trigger_set(request: pytest.FixtureRequest) -> None:
173203
time.sleep(1)
174204

175205
assert trigger.is_set()
206+
with contextlib.suppress(ObjectNotFoundError):
207+
folder.delete(recursive=True, delete_runs=True)
176208

177209
@pytest.mark.executor
178210
def test_completion_callbacks_trigger_set(request: pytest.FixtureRequest) -> None:
@@ -181,6 +213,10 @@ def test_completion_callbacks_trigger_set(request: pytest.FixtureRequest) -> Non
181213
def completion_callback(*_, trigger=trigger, **__):
182214
trigger.set()
183215

216+
folder_id = f"{uuid.uuid4()}".split("-")[0]
217+
folder = Folder.new(path=f"/simvue_unit_testing/{folder_id}")
218+
folder.commit()
219+
184220
with simvue.Run() as run:
185221
run.init(
186222
"test_completion_callbacks_trigger_set",
@@ -198,4 +234,6 @@ def completion_callback(*_, trigger=trigger, **__):
198234
time.sleep(1)
199235

200236
assert trigger.is_set()
237+
with contextlib.suppress(ObjectNotFoundError):
238+
folder.delete(recursive=True, delete_runs=True)
201239

0 commit comments

Comments
 (0)