code: def test_batch_metrics_logger_records_time_correctly(start_run):
      with mock.patch.object(
          MlflowClient,
          "log_batch",
          wraps=lambda *args, **kwargs: time.sleep(1),
      ):
          run_id = mlflow.active_run().info.run_id
          with batch_metrics_logger(run_id) as metrics_logger:
              metrics_logger.record_metrics({"x": 1}, step=0)
  
              assert metrics_logger.total_log_batch_time >= 1
  
              time.sleep(2)
  
              metrics_logger.record_metrics({"x": 1}, step=0)
  
              assert metrics_logger.total_training_time >= 2
  
imports: import inspect
  import sys
  import time
  from collections import namedtuple
  from unittest import mock
  import pytest
  import mlflow
  from mlflow import MlflowClient
  from mlflow.utils import gorilla
  from mlflow.utils.autologging_utils import AUTOLOGGING_INTEGRATIONS, AutologgingEventLogger, BatchMetricsLogger, autologging_integration, autologging_is_disabled, batch_metrics_logger, get_autologging_config, get_instance_method_first_arg_value, get_method_call_arg_value, log_fn_args_as_params, resolve_input_example_and_signature
  from mlflow.utils.autologging_utils.safety import AutologgingSession, _wrap_patch
  from mlflow.utils.autologging_utils.versioning import FLAVOR_TO_MODULE_NAME_AND_VERSION_INFO_KEY, _check_version_in_range, _is_pre_or_dev_release, _strip_dev_version_suffix, _violates_pep_440, is_flavor_supported_for_associated_package_versions
  from tests.autologging.fixtures import test_mode_off
label_desc: Use image node_id 21 for calling a global function with example usage: test_batch_metrics_logger_records_time_correctly(start_run) without return types