code: def test_tag_callbacks(mock_record, callback_classes_expected):
      callback_classes, expected = callback_classes_expected
  
      callbacks = (
          [callback_cls() for callback_cls in callback_classes]
          if callback_classes
          else None
      )
  
      air_usage.tag_callbacks(callbacks)
  
      callback_usage_str = mock_record.pop(TagKey.AIR_CALLBACKS, None)
      callback_counts = (
          json.loads(callback_usage_str) if callback_usage_str else None
      )
      assert callback_counts == expected
  
imports: import json
  import os
  from packaging.version import Version
  import pyarrow.fs
  import pytest
  from unittest.mock import MagicMock, patch
  import ray
  from ray import train, tune
  from ray.air._internal import usage
  from ray.air._internal.usage import AirEntrypoint
  from ray.air.integrations import wandb, mlflow, comet
  from ray.train._internal.storage import StorageContext
  from ray.tune.callback import Callback
  from ray.tune.experiment.experiment import Experiment
  from ray.tune.logger import LoggerCallback
  from ray.tune.logger.aim import AimLoggerCallback
  from ray.tune.utils.callback import DEFAULT_CALLBACK_CLASSES
  from ray._private.usage.usage_lib import TagKey
label_desc: Use image node_id 10 for calling a global function with example usage: test_tag_callbacks(mock_record, callback_classes_expected) without return types