def METHOD_NAME(worktree_info, worktree_root):
    """
    This tests git.list_worktrees
    """
    def _build_worktree_output(path):
        """
        Build 'git worktree list' output for a given path
        """
        return "worktree {}\nHEAD {}\n{}\n".format(
            path,
            worktree_info[path]["HEAD"],
            "branch {}".format(worktree_info[path]["branch"])
            if worktree_info[path]["branch"] != "detached"
            else "detached",
        )
    # Build dict for _cmd_run_side_effect below. Start with the output from
    # 'git worktree list'.
    _cmd_run_values = {
        "git worktree list --porcelain": "\n".join(
            [_build_worktree_output(x) for x in worktree_info]
        ),
        "git --version": "git version 2.7.0",
    }
    # Add 'git tag --points-at' output for detached HEAD worktrees with
    # tags pointing at HEAD.
    for path in worktree_info:
        if worktree_info[path]["branch"] != "detached":
            continue
        key = "git tag --points-at " + worktree_info[path]["HEAD"]
        _cmd_run_values[key] = "\n".join(worktree_info[path].get("tags", []))
    def _cmd_run_side_effect(key, **kwargs):
        # Not using dict.get() here because we want to know if
        # _cmd_run_values doesn't account for all uses of cmd.run_all.
        return {
            "stdout": _cmd_run_values[" ".join(key)],
            "stderr": "",
            "retcode": 0,
            "pid": 12345,
        }
    def _isdir_side_effect(key):
        # os.path.isdir() would return True on a non-stale worktree
        return not worktree_info[key].get("stale", False)
    # Build return dict for comparison
    worktree_ret = copy.deepcopy(worktree_info)
    for key in worktree_ret:
        ptr = worktree_ret.get(key)
        ptr["detached"] = ptr["branch"] == "detached"
        ptr["branch"] = (
            None if ptr["detached"] else ptr["branch"].replace("refs/heads/", "", 1)
        )
    cmd_run_mock = MagicMock(side_effect=_cmd_run_side_effect)
    isdir_mock = MagicMock(side_effect=_isdir_side_effect)
    with patch.dict(git_mod.__salt__, {"cmd.run_all": cmd_run_mock}):
        with patch.object(os.path, "isdir", isdir_mock):
            # Test all=True. Include all return data.
            assert (
                git_mod.list_worktrees(worktree_root, all=True, stale=False)
                == worktree_ret
            )
            # Test all=False and stale=False. Exclude stale worktrees from
            # return data.
            assert git_mod.list_worktrees(worktree_root, all=False, stale=False) == {
                x: worktree_ret[x]
                for x in worktree_info
                if not worktree_info[x].get("stale", False)
            }
            # Test stale=True. Exclude non-stale worktrees from return
            # data.
            assert git_mod.list_worktrees(worktree_root, all=False, stale=True) == {
                x: worktree_ret[x]
                for x in worktree_info
                if worktree_info[x].get("stale", False)
            }