code: def test_tag_air_entrypoint(
      ray_start_4_cpus, mock_record, entrypoint, tuner, trainer
  ):
      if entrypoint == AirEntrypoint.TUNE_RUN:
          tune.run(train_fn)
      elif entrypoint == AirEntrypoint.TUNE_RUN_EXPERIMENTS:
          experiment_spec = Experiment("experiment", train_fn)
          tune.run_experiments(experiments=experiment_spec)
      elif entrypoint == AirEntrypoint.TUNER:
          tuner.fit()
      elif entrypoint == AirEntrypoint.TRAINER:
          trainer.fit()
  
      assert mock_record[TagKey.AIR_ENTRYPOINT] == entrypoint.value
  
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 12 for calling a global function with example usage: test_tag_air_entrypoint(ray_start_4_cpus, mock_record, entrypoint, tuner, trainer) without return types