code: def test_load_project(
      tmp_path,
      mlproject,
      conda_env_path,
      conda_env_contents,
      mlproject_path,
  ):
      """
      Test that we can load a project with various combinations of an MLproject / conda.yaml file
      :param mlproject: Contents of MLproject file. If None, no MLproject file will be written
      :param conda_env_path: Path to conda environment file. If None, no conda environment file will
                             be written.
      :param conda_env_contents: Contents of conda environment file (written if conda_env_path is
                                 not None)
      """
      if mlproject:
          tmp_path.joinpath(mlproject_path).write_text(mlproject)
      if conda_env_path:
          tmp_path.joinpath(conda_env_path).write_text(
              conda_env_contents
          )
      project = _project_spec.load_project(str(tmp_path))
      assert project._entry_points == {}
      expected_env_path = (
          str(tmp_path.joinpath(conda_env_path))
          if conda_env_path
          else None
      )
      assert project.env_config_path == expected_env_path
      if conda_env_path:
          with open(project.env_config_path) as f:
              assert f.read() == conda_env_contents
  
file_path: mlflow/tests/projects/test_project_spec.py
imports: import os
  import textwrap
  import pytest
  from mlflow.exceptions import ExecutionException
  from mlflow.projects import _project_spec
  from tests.projects.utils import load_project
label_desc: Use image node_id 3 for calling a global function with example usage: test_load_project(tmp_path, mlproject, conda_env_path, conda_env_contents, mlproject_path) without return types