Files
2026-07-13 13:22:34 +08:00

52 lines
2.1 KiB
Python

from unittest import mock
import pytest
from mlflow.exceptions import MlflowException
from mlflow.tracing.databricks import set_databricks_monitoring_sql_warehouse_id
def test_set_databricks_monitoring_sql_warehouse_id_requires_databricks_tracking_uri():
with mock.patch("mlflow.get_tracking_uri", return_value="file:///tmp"):
with pytest.raises(MlflowException, match="only supported when the tracking URI"):
set_databricks_monitoring_sql_warehouse_id(
sql_warehouse_id="warehouse123", experiment_id="exp456"
)
def test_set_databricks_monitoring_sql_warehouse_id_with_explicit_experiment_id():
mock_store = mock.MagicMock()
with (
mock.patch("mlflow.tracking.get_tracking_uri", return_value="databricks"),
mock.patch(
"mlflow.tracking._tracking_service.utils._get_store",
return_value=mock_store,
),
):
set_databricks_monitoring_sql_warehouse_id(
sql_warehouse_id="warehouse123", experiment_id="exp456"
)
mock_store.set_experiment_tag.assert_called_once()
call_args = mock_store.set_experiment_tag.call_args
assert call_args[0][0] == "exp456"
assert call_args[0][1].key == "mlflow.monitoring.sqlWarehouseId"
assert call_args[0][1].value == "warehouse123"
def test_set_databricks_monitoring_sql_warehouse_id_with_default_experiment_id():
mock_store = mock.MagicMock()
with (
mock.patch("mlflow.tracking.get_tracking_uri", return_value="databricks"),
mock.patch(
"mlflow.tracking._tracking_service.utils._get_store",
return_value=mock_store,
),
mock.patch("mlflow.tracking.fluent._get_experiment_id", return_value="default_exp"),
):
set_databricks_monitoring_sql_warehouse_id(sql_warehouse_id="warehouse789")
mock_store.set_experiment_tag.assert_called_once()
call_args = mock_store.set_experiment_tag.call_args
assert call_args[0][0] == "default_exp"
assert call_args[0][1].key == "mlflow.monitoring.sqlWarehouseId"
assert call_args[0][1].value == "warehouse789"