code: def test_batch_metrics_logger_chunks_metrics_when_batch_logging(
      start_run,
  ):
      with mock.patch.object(
          MlflowClient, "log_batch"
      ) as log_batch_mock:
          run_id = mlflow.active_run().info.run_id
          with batch_metrics_logger(run_id) as metrics_logger:
              metrics_logger.record_metrics(
                  {hex(x): x for x in range(5000)}, step=0
              )
              run_id = mlflow.active_run().info.run_id
  
              for call_idx, call in enumerate(
                  log_batch_mock.call_args_list
              ):
                  _, kwargs = call
  
                  assert kwargs["run_id"] == run_id
                  assert len(kwargs["metrics"]) == 1000
                  for metric_idx, metric in enumerate(
                      kwargs["metrics"]
                  ):
                      assert metric.key == hex(
                          call_idx * 1000 + metric_idx
                      )
                      assert (
                          metric.value == call_idx * 1000 + metric_idx
                      )
                      assert metric.step == 0
  
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 20 for calling a global function with example usage: test_batch_metrics_logger_chunks_metrics_when_batch_logging(start_run) without return types