Skip to content

Commit a4ace82

Browse files
committed
Test task dependency
1 parent 6d757bb commit a4ace82

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

tests/unit/assessment/test_sequencing.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,3 +292,54 @@ def test_sequence_steps_from_job_task_with_non_existing_cluster(ws, admin_locato
292292
required_step_ids=[1],
293293
),
294294
]
295+
296+
297+
def test_sequence_steps_from_job_task_referencing_other_task(ws, admin_locator) -> None:
298+
"""Sequence a job with a task that has a new cluster definition.
299+
300+
Sequence:
301+
1. Task1
302+
2. Task2
303+
3. Job
304+
"""
305+
task1 = jobs.Task(task_key="task1")
306+
task_dependency = jobs.TaskDependency(task1.task_key)
307+
task2 = jobs.Task(task_key="task2", depends_on=[task_dependency])
308+
tasks = [task2, task1] # Reverse order on purpose to test if this is handled
309+
settings = jobs.JobSettings(name="job", tasks=tasks)
310+
job = jobs.Job(job_id=1234, settings=settings)
311+
sequencer = MigrationSequencer(ws, admin_locator)
312+
313+
maybe_job_node = sequencer.register_job(job)
314+
assert not maybe_job_node.failed
315+
316+
steps = list(sequencer.generate_steps())
317+
assert steps == [
318+
MigrationStep(
319+
step_id=1,
320+
step_number=0,
321+
object_type="TASK",
322+
object_id="1234/task1",
323+
object_name="task1",
324+
object_owner="John Doe",
325+
required_step_ids=[],
326+
),
327+
MigrationStep(
328+
step_id=2,
329+
step_number=0,
330+
object_type="TASK",
331+
object_id="1234/task2",
332+
object_name="task2",
333+
object_owner="John Doe",
334+
required_step_ids=[1],
335+
),
336+
MigrationStep(
337+
step_id=0,
338+
step_number=1,
339+
object_type="JOB",
340+
object_id="1234",
341+
object_name="job",
342+
object_owner="John Doe",
343+
required_step_ids=[1, 2],
344+
),
345+
]

0 commit comments

Comments
 (0)