Skip to content

Commit 931cead

Browse files
authored
Fixes fmt and unit test failures from new blueprint release (#4048)
## Changes Breaking changes in the blueprint release needs adding type hints to MockInstallation and fix a failing unit tests. This PR will also allow the acceptance tests to run that fail for dependabot. ### Tests - [x] manually tested
1 parent f240855 commit 931cead

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ classifiers = [
4747

4848
dependencies = ["databricks-sdk>=0.44.0,<0.54.0",
4949
"databricks-labs-lsql>=0.16.0,<0.17.0",
50-
"databricks-labs-blueprint>=0.10.0,<0.11.0",
50+
"databricks-labs-blueprint>=0.11.0,<0.12.0",
5151
"PyYAML>=6.0.0,<6.1.0",
5252
"sqlglot>=26.7.0,<26.8.0",
5353
"astroid>=3.3.0,<3.4.0"]

tests/unit/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from unittest.mock import create_autospec
99

1010
import yaml
11-
from databricks.labs.blueprint.installation import MockInstallation
11+
from databricks.labs.blueprint.installation import MockInstallation, RootJsonValue
1212
from databricks.labs.lsql.backends import MockBackend
1313
from databricks.sdk import WorkspaceClient
1414
from databricks.sdk.errors import NotFound
@@ -24,7 +24,7 @@
2424
logging.getLogger("tests").setLevel("DEBUG")
2525
logger = logging.getLogger(__name__)
2626

27-
DEFAULT_CONFIG = {
27+
DEFAULT_CONFIG: dict[str, RootJsonValue] = {
2828
"config.yml": {
2929
'version': 2,
3030
'inventory_database': 'ucx',

tests/unit/install/test_install_dashboards.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,24 @@ def test_installation_recreates_trashed_lakeview_dashboard(caplog, ws, workspace
129129
[MockInstallation({'state.json': {'resources': {'dashboards': {"assessment_main": "lakeview_id"}}}})],
130130
indirect=True,
131131
)
132-
@pytest.mark.parametrize("exception", [InvalidParameterValue, NotFound])
133-
def test_installation_recovers_invalid_dashboard(caplog, ws, workspace_installation, exception):
134-
ws.lakeview.get.side_effect = exception
132+
def test_installation_recovers_invalid_dashboard_invalidparametervalue(caplog, ws, workspace_installation) -> None:
133+
ws.lakeview.get.side_effect = InvalidParameterValue
134+
with caplog.at_level(logging.DEBUG, logger="databricks.labs.ucx.install"):
135+
workspace_installation.run()
136+
assert "Recovering invalid dashboard" in caplog.text
137+
assert "Deleted dangling dashboard" in caplog.text
138+
ws.workspace.delete.assert_called()
139+
ws.lakeview.create.assert_called()
140+
ws.lakeview.update.assert_not_called()
141+
142+
143+
@pytest.mark.parametrize(
144+
"workspace_installation",
145+
[MockInstallation({'state.json': {'resources': {'dashboards': {"assessment_main": "lakeview_id"}}}})],
146+
indirect=True,
147+
)
148+
def test_installation_recovers_invalid_dashboard_notfound(caplog, ws, workspace_installation) -> None:
149+
ws.lakeview.get.side_effect = NotFound
135150
with caplog.at_level(logging.DEBUG, logger="databricks.labs.ucx.install"):
136151
workspace_installation.run()
137152
assert "Recovering invalid dashboard" in caplog.text

0 commit comments

Comments
 (0)