code: def patch_destination():
      class PatchObj:
          def __init__(self):
              self.fn_call_count = 0
              self.recurse_fn_call_count = 0
  
          def fn(
              self, *args, **kwargs
          ):  # pylint: disable=unused-argument
              self.fn_call_count += 1
              return PATCH_DESTINATION_FN_DEFAULT_RESULT
  
          def recursive_fn(self, level, max_depth):
              self.recurse_fn_call_count += 1
              if level == max_depth:
                  return PATCH_DESTINATION_FN_DEFAULT_RESULT
              else:
                  return self.recursive_fn(level + 1, max_depth)
  
          def throw_error_fn(self, error_to_raise):
              raise error_to_raise
  
      return PatchObj()
  
file_path: mlflow/tests/autologging/fixtures.py
imports: import os
  import sys
  import pytest
  from mlflow.environment_variables import _MLFLOW_AUTOLOGGING_TESTING
  from mlflow.utils import logging_utils
  from mlflow.utils.autologging_utils import is_testing
label_desc: Use image node_id 1 for calling a global function with example usage: patch_destination() and returns: PatchObj, PATCH_DESTINATION_FN_DEFAULT_RESULT, PATCH_DESTINATION_FN_DEFAULT_RESULT, self