code: def test_git_clone_repo_succeed(
      exists, isdir, isfile, tempdir, mkdtemp, check_call
  ):
      git_config = {
          "repo": PUBLIC_GIT_REPO,
          "branch": PUBLIC_BRANCH,
          "commit": PUBLIC_COMMIT,
      }
      entry_point = "entry_point"
      source_dir = "source_dir"
      dependencies = ["foo", "bar"]
      env = os.environ.copy()
      env["GIT_TERMINAL_PROMPT"] = "0"
      ret = git_utils.git_clone_repo(
          git_config, entry_point, source_dir, dependencies
      )
      check_call.assert_any_call(
          ["git", "clone", git_config["repo"], REPO_DIR], env=env
      )
      check_call.assert_any_call(
          args=["git", "checkout", PUBLIC_BRANCH], cwd=REPO_DIR
      )
      check_call.assert_any_call(
          args=["git", "checkout", PUBLIC_COMMIT], cwd=REPO_DIR
      )
      mkdtemp.assert_called_once()
      assert ret["entry_point"] == "entry_point"
      assert ret["source_dir"] == "/tmp/repo_dir/source_dir"
      assert ret["dependencies"] == [
          "/tmp/repo_dir/foo",
          "/tmp/repo_dir/bar",
      ]
  
imports: from __future__ import absolute_import
  import pytest
  import os
  from pathlib import Path
  import subprocess
  from mock import patch, ANY
  from sagemaker import git_utils
label_desc: Use image node_id 1 for calling a global function with example usage: test_git_clone_repo_succeed(exists, isdir, isfile, tempdir, mkdtemp, check_call) without return types