Files
mlflow--mlflow/tests/tracking/context/test_databricks_repo_context.py
2026-07-13 13:22:34 +08:00

85 lines
3.7 KiB
Python

from unittest import mock
from mlflow.tracking.context.databricks_repo_context import DatabricksRepoRunContext
from mlflow.utils.mlflow_tags import (
MLFLOW_DATABRICKS_GIT_REPO_COMMIT,
MLFLOW_DATABRICKS_GIT_REPO_PROVIDER,
MLFLOW_DATABRICKS_GIT_REPO_REFERENCE,
MLFLOW_DATABRICKS_GIT_REPO_REFERENCE_TYPE,
MLFLOW_DATABRICKS_GIT_REPO_RELATIVE_PATH,
MLFLOW_DATABRICKS_GIT_REPO_STATUS,
MLFLOW_DATABRICKS_GIT_REPO_URL,
)
def test_databricks_repo_run_context_in_context():
with mock.patch("mlflow.utils.databricks_utils.is_in_databricks_repo") as in_repo_mock:
assert DatabricksRepoRunContext().in_context() == in_repo_mock.return_value
def test_databricks_repo_run_context_tags():
patch_git_repo_url = mock.patch("mlflow.utils.databricks_utils.get_git_repo_url")
patch_git_repo_provider = mock.patch("mlflow.utils.databricks_utils.get_git_repo_provider")
patch_git_repo_commit = mock.patch("mlflow.utils.databricks_utils.get_git_repo_commit")
patch_git_repo_relative_path = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_relative_path"
)
patch_git_repo_reference = mock.patch("mlflow.utils.databricks_utils.get_git_repo_reference")
patch_git_repo_reference_type = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_reference_type"
)
patch_git_repo_status = mock.patch("mlflow.utils.databricks_utils.get_git_repo_status")
with (
patch_git_repo_url as git_repo_url_mock,
patch_git_repo_provider as git_repo_provider_mock,
patch_git_repo_commit as git_repo_commit_mock,
patch_git_repo_relative_path as git_repo_relative_path_mock,
patch_git_repo_reference as git_repo_reference_mock,
patch_git_repo_reference_type as git_repo_reference_type_mock,
patch_git_repo_status as git_repo_status_mock,
):
assert DatabricksRepoRunContext().tags() == {
MLFLOW_DATABRICKS_GIT_REPO_URL: git_repo_url_mock.return_value,
MLFLOW_DATABRICKS_GIT_REPO_PROVIDER: git_repo_provider_mock.return_value,
MLFLOW_DATABRICKS_GIT_REPO_COMMIT: git_repo_commit_mock.return_value,
MLFLOW_DATABRICKS_GIT_REPO_RELATIVE_PATH: git_repo_relative_path_mock.return_value,
MLFLOW_DATABRICKS_GIT_REPO_REFERENCE: git_repo_reference_mock.return_value,
MLFLOW_DATABRICKS_GIT_REPO_REFERENCE_TYPE: git_repo_reference_type_mock.return_value,
MLFLOW_DATABRICKS_GIT_REPO_STATUS: git_repo_status_mock.return_value,
}
def test_databricks_repo_run_context_tags_nones():
patch_git_repo_url = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_url", return_value=None
)
patch_git_repo_provider = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_provider", return_value=None
)
patch_git_repo_commit = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_commit", return_value=None
)
patch_git_repo_relative_path = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_relative_path", return_value=None
)
patch_git_repo_reference = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_reference", return_value=None
)
patch_git_repo_reference_type = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_reference_type", return_value=None
)
patch_git_repo_status = mock.patch(
"mlflow.utils.databricks_utils.get_git_repo_status", return_value=None
)
with (
patch_git_repo_url,
patch_git_repo_provider,
patch_git_repo_commit,
patch_git_repo_relative_path,
patch_git_repo_reference,
patch_git_repo_reference_type,
patch_git_repo_status,
):
assert DatabricksRepoRunContext().tags() == {}