Skip to content

Commit 6812a9d

Browse files
committed
Test non-existing task dependency
1 parent d760c5e commit 6812a9d

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/databricks/labs/ucx/assessment/sequencing.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,10 @@ def register_job(self, job: jobs.Job) -> MaybeMigrationNode:
202202
if maybe_task_dependency:
203203
self._outgoing_references[task_key].add(maybe_task_dependency)
204204
else:
205+
# Verified that a job with a task having a depends on referring a non-existing task cannot be
206+
# created. However, this code is just in case.
205207
problem = DependencyProblem(
206-
'task-dependency-not-found', f"Could not find task: {task_dependency}"
208+
'task-dependency-not-found', f"Could not find task: {task_dependency_key[1]}"
207209
)
208210
problems.append(problem)
209211
return MaybeMigrationNode(job_node, problems)

tests/unit/assessment/test_sequencing.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,28 @@ def test_register_job_with_task_dependency(ws, admin_locator) -> None:
113113
job = jobs.Job(job_id=1234, settings=settings)
114114
sequencer = MigrationSequencer(ws, admin_locator)
115115

116-
maybe_job_node = sequencer.register_job(job)
117116
maybe_node = sequencer.register_job(job)
118117

119118
assert not maybe_node.failed
120119

121-
assert not maybe_job_node.failed
120+
121+
def test_register_job_with_non_existing_task_dependency(ws, admin_locator) -> None:
122+
"""Register a job with a non-existing task dependency."""
123+
task_dependency = jobs.TaskDependency("non-existing-id")
124+
task = jobs.Task(task_key="task2", depends_on=[task_dependency])
125+
settings = jobs.JobSettings(name="job", tasks=[task])
126+
job = jobs.Job(job_id=1234, settings=settings)
127+
sequencer = MigrationSequencer(ws, admin_locator)
128+
129+
maybe_node = sequencer.register_job(job)
130+
131+
assert maybe_node.failed
132+
assert maybe_node.problems == [
133+
DependencyProblem(
134+
code="task-dependency-not-found",
135+
message="Could not find task: 1234/non-existing-id",
136+
)
137+
]
122138

123139

124140
def test_sequence_steps_from_job_task_with_existing_cluster_id(ws, admin_locator) -> None:

0 commit comments

Comments
 (0)