def test_parse_kubernetes_config_without_image_uri(): kubernetes_config = { "kube-context": "docker-for-desktop", "kube-job-template-path": "kubernetes_job_template.yaml", } with pytest.raises(ExecutionException): _parse_kubernetes_config(kubernetes_config)
def test_parse_kubernetes_config_without_context(): kubernetes_config = { "repository-uri": "dockerhub_account/mlflow-kubernetes-example", "kube-job-template-path": "kubernetes_job_template.yaml", } with pytest.raises(ExecutionException): _parse_kubernetes_config(kubernetes_config)
def test_parse_kubernetes_config_without_image_uri(mock_kubernetes_job_template): kubernetes_config = { "kube-context": "docker-for-desktop", "kube-job-template-path": mock_kubernetes_job_template, } with pytest.raises(ExecutionException, match="Could not find 'repository-uri'"): _parse_kubernetes_config(kubernetes_config)
def test_parse_kubernetes_config_invalid_template_job_file(): kubernetes_config = { "kube-context": "docker-for-desktop", "repository-uri": "username/mlflow-kubernetes-example", "kube-job-template-path": "file_not_found.yaml", } with pytest.raises(ExecutionException): _parse_kubernetes_config(kubernetes_config)
def test_parse_kubernetes_config_without_context(mock_kubernetes_job_template): with mock.patch("mlflow.projects._logger.debug") as mock_debug: kubernetes_config = { "repository-uri": "dockerhub_account/mlflow-kubernetes-example", "kube-job-template-path": mock_kubernetes_job_template, } _parse_kubernetes_config(kubernetes_config) mock_debug.assert_called_once_with( StartsWithMatcher("Could not find kube-context in backend_config"))
def test_parse_kubernetes_config(): work_dir = "./examples/docker" kubernetes_config = { "kube-context": "docker-for-desktop", "kube-job-template-path": os.path.join(work_dir, "kubernetes_job_template.yaml"), "repository-uri": "dockerhub_account/mlflow-kubernetes-example", } yaml_obj = None with open(kubernetes_config["kube-job-template-path"], "r") as job_template: yaml_obj = yaml.safe_load(job_template.read()) kube_config = _parse_kubernetes_config(kubernetes_config) assert kube_config["kube-context"] == kubernetes_config["kube-context"] assert kube_config["kube-job-template-path"] == kubernetes_config["kube-job-template-path"] assert kube_config["repository-uri"] == kubernetes_config["repository-uri"] assert kube_config["kube-job-template"] == yaml_obj