Skip to content

Commit 8dd66b4

Browse files
authored
Merge pull request #313 from ExaWorks/add_another_attach_test
Adds a test that re-attaches a job, but to another executor instance …
2 parents 8162801 + 688dc1f commit 8dd66b4

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

tests/_test_tools.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ def assert_completed(job: Job, status: Optional[JobStatus]) -> None:
3838
% (status.message, stdout, stderr))
3939

4040

41-
def _get_executor_instance(ep: ExecutorTestParams, job: Job) -> JobExecutor:
42-
assert job.spec is not None
43-
job.spec.launcher = ep.launcher
44-
job.spec.attributes = JobAttributes(custom_attributes=ep.custom_attributes)
41+
def _get_executor_instance(ep: ExecutorTestParams, job: Optional[Job] = None) -> JobExecutor:
42+
if job is not None:
43+
assert job.spec is not None
44+
job.spec.launcher = ep.launcher
45+
job.spec.attributes = JobAttributes(custom_attributes=ep.custom_attributes)
4546
return JobExecutor.get_instance(ep.executor, url=ep.url)

tests/test_executor.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,22 @@ def test_simple_job_redirect(execparams: ExecutorTestParams) -> None:
3232

3333

3434
def test_attach(execparams: ExecutorTestParams) -> None:
35+
job1 = Job(JobSpec(executable='/bin/sleep', arguments=['1']))
36+
ex = _get_executor_instance(execparams, job1)
37+
ex.submit(job1)
38+
job1.wait(target_states=[JobState.ACTIVE, JobState.COMPLETED])
39+
native_id = job1.native_id
40+
41+
assert native_id is not None
42+
job2 = Job()
43+
ex.attach(job2, native_id)
44+
status2 = job2.wait(timeout=_get_timeout(execparams))
45+
assert_completed(job2, status2)
46+
status1 = job1.wait(timeout=_get_timeout(execparams))
47+
assert_completed(job1, status1)
48+
49+
50+
def test_attach2(execparams: ExecutorTestParams) -> None:
3551
job = Job(JobSpec(executable='/bin/sleep', arguments=['1']))
3652
ex = _get_executor_instance(execparams, job)
3753
ex.submit(job)
@@ -40,7 +56,8 @@ def test_attach(execparams: ExecutorTestParams) -> None:
4056

4157
assert native_id is not None
4258
job2 = Job()
43-
ex.attach(job2, native_id)
59+
ex2 = _get_executor_instance(execparams)
60+
ex2.attach(job2, native_id)
4461
status = job2.wait(timeout=_get_timeout(execparams))
4562
assert_completed(job2, status)
4663

0 commit comments

Comments
 (0)