code: def test_checkpoint_auto_period(
      ray_start_4_cpus_2_gpus_extra, resource_manager_cls, tmp_path
  ):
      """Test that the checkpoint auto period is adjusted when syncing takes a long time.
  
      Legacy test: test_trial_runner_3.py::TrialRunnerTest::testCheckpointAutoPeriod
      """
      storage = mock_storage_context(delete_syncer=False)
  
      with mock.patch.object(
          storage.syncer, "sync_up"
      ) as sync_up, tempfile.TemporaryDirectory() as local_dir:
          storage.storage_local_path = local_dir
          sync_up.side_effect = lambda *a, **kw: time.sleep(2)
  
          runner = TuneController(
              resource_manager_factory=lambda: resource_manager_cls(),
              storage=storage,
              checkpoint_period="auto",
          )
  
          runner.add_trial(
              Trial(
                  "__fake",
                  config={"user_checkpoint_freq": 1},
                  storage=storage,
              )
          )
  
          runner.step()  # Run one step, this will trigger checkpointing
  
          assert runner._checkpoint_manager._checkpoint_period > 38.0
  
imports: import json
  import logging
  import os
  import tempfile
  from unittest import mock
  import pytest
  import sys
  import time
  from functools import partial
  import ray
  from freezegun import freeze_time
  from ray.train import CheckpointConfig
  from ray.air.execution import FixedResourceManager, PlacementGroupResourceManager
  from ray.air.constants import TRAINING_ITERATION
  from ray.train import Checkpoint
  from ray.train._internal.session import _TrainingResult
  from ray.train._internal.storage import StorageContext
  from ray.tune import PlacementGroupFactory
  from ray.tune.execution.tune_controller import TuneController
  from ray.tune.experiment import Trial
  from ray.tune.result import DONE
  from ray.tune.schedulers import FIFOScheduler
  from ray.tune.search import BasicVariantGenerator
  from ray.train.tests.util import mock_storage_context
  from ray.tune.tests.tune_test_util import TrialResultObserver
label_desc: Use image node_id 11 for calling a global function with example usage: test_checkpoint_auto_period(ray_start_4_cpus_2_gpus_extra, resource_manager_cls, tmp_path) without return types