Skip to content

Commit 31d2c8d

Browse files
committed
..
1 parent 6569cb4 commit 31d2c8d

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

tests/unit/test_install.py

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
import pytest
66
import yaml
77
from databricks.sdk.core import DatabricksError
8-
from databricks.sdk.service import iam
8+
from databricks.sdk.errors import OperationFailed
9+
from databricks.sdk.service import iam, jobs
910
from databricks.sdk.service.sql import (
1011
Dashboard,
1112
DataSource,
@@ -24,7 +25,6 @@
2425

2526

2627
def mock_ws(mocker):
27-
ws = mocker.Mock()
2828
ws = mocker.patch("databricks.sdk.WorkspaceClient.__init__")
2929

3030
ws.current_user.me = lambda: iam.User(user_name="[email protected]", groups=[iam.ComplexValue(display="admins")])
@@ -44,16 +44,48 @@ def mock_ws(mocker):
4444
return ws
4545

4646

47-
def test_run_for_config(mocker, tmp_path):
48-
# run_for_config(ws: WorkspaceClient, config: WorkspaceConfig, *, prefix="ucx") -> "WorkspaceInstaller":
47+
def test_replace_clusters_for_integration_tests(mocker):
4948
ws = mock_ws(mocker)
50-
51-
install = WorkspaceInstaller(ws)
52-
wc = WorkspaceConfig(inventory_database="a", groups=GroupsConfig(auto=True))
53-
return_value = install.run_for_config(ws, wc)
49+
return_value = WorkspaceInstaller.run_for_config(
50+
ws, WorkspaceConfig(inventory_database="a", groups=GroupsConfig(auto=True)), override_clusters={"main": "abc"}
51+
)
5452
assert return_value
5553

5654

55+
def test_run_workflow_creates_proper_failure(mocker):
56+
def run_now(job_id):
57+
assert "bar" == job_id
58+
59+
def result():
60+
raise OperationFailed(...)
61+
62+
waiter = mocker.Mock()
63+
waiter.result = result
64+
waiter.run_id = "qux"
65+
return waiter
66+
67+
ws = mock_ws(mocker)
68+
ws.jobs.run_now = run_now
69+
ws.jobs.get_run.return_value = jobs.Run(
70+
state=jobs.RunState(state_message="Stuff happens."),
71+
tasks=[
72+
jobs.RunTask(
73+
task_key="stuff",
74+
state=jobs.RunState(result_state=jobs.RunResultState.FAILED),
75+
run_id=123,
76+
)
77+
],
78+
)
79+
ws.jobs.get_run_output.return_value = jobs.RunOutput(error="does not compute", error_trace="# goes to stderr")
80+
installer = WorkspaceInstaller(ws)
81+
installer._deployed_steps = {"foo": "bar"}
82+
83+
with pytest.raises(OperationFailed) as failure:
84+
installer.run_workflow("foo")
85+
86+
assert "Stuff happens: stuff: does not compute" == str(failure.value)
87+
88+
5789
def test_install_database_happy(mocker, tmp_path):
5890
ws = mocker.Mock()
5991
install = WorkspaceInstaller(ws)

0 commit comments

Comments
 (0)