code: def test_mlflow_run():
      with mock.patch("mlflow.cli.projects") as mock_projects:
          result = CliRunner().invoke(cli.run)
          mock_projects.run.assert_not_called()
          assert "Missing argument 'URI'" in result.output
  
      with mock.patch("mlflow.cli.projects") as mock_projects:
          CliRunner().invoke(cli.run, ["project_uri"])
          mock_projects.run.assert_called_once()
  
      with mock.patch("mlflow.cli.projects") as mock_projects:
          CliRunner().invoke(
              cli.run, ["--experiment-id", "5", "project_uri"]
          )
          mock_projects.run.assert_called_once()
  
      with mock.patch("mlflow.cli.projects") as mock_projects:
          CliRunner().invoke(
              cli.run,
              ["--experiment-name", "random name", "project_uri"],
          )
          mock_projects.run.assert_called_once()
  
      with mock.patch("mlflow.cli.projects") as mock_projects:
          result = CliRunner().invoke(
              cli.run,
              [
                  "--experiment-id",
                  "51",
                  "--experiment-name",
                  "name blah",
                  "uri",
              ],
          )
          mock_projects.run.assert_not_called()
          assert (
              "Specify only one of 'experiment-name' or 'experiment-id' options."
              in result.output
          )
  
imports: import json
  import logging
  import os
  import shutil
  from unittest import mock
  import pytest
  from click.testing import CliRunner
  from mlflow import MlflowClient, cli
  from mlflow.utils import insecure_hash, process
  from tests.integration.utils import invoke_cli_runner
  from tests.projects.utils import GIT_PROJECT_URI, SSH_PROJECT_URI, TEST_DOCKER_PROJECT_DIR, TEST_PROJECT_DIR, docker_example_base_image
label_desc: Use image node_id 10 for calling a global function with example usage: test_mlflow_run() without return types