code: def test_stateful_trainer_ckpt_path_support(tmp_path):
      """Tests support for the pattern used by NeMo's experiment manager."""
      model = BoringModel()
  
      # dummy ckpt data
      ckpt_data = {
          "state_dict": model.state_dict(),
          "optimizer_states": {},
          "lr_schedulers": {},
      }
      _set_version(ckpt_data, "2.0.0")
  
      # save a "checkpoint"
      ckpt_path = tmp_path / "foo.ckpt"
      torch.save(ckpt_data, ckpt_path)
  
      # mock model checkpoint instance that has saved a last checkpoint
      model_checkpoint = Mock(spec=ModelCheckpoint)
      last_path = tmp_path / "last.ckpt"
      torch.save(ckpt_data, last_path)
      model_checkpoint._find_last_checkpoints.return_value = {last_path}
  
      trainer = Trainer(
          default_root_dir=tmp_path,
          fast_dev_run=True,
          callbacks=model_checkpoint,
      )
  
      # set the ckpt path statefully
      trainer.ckpt_path = ckpt_path
      trainer.fit(model)
      assert trainer.ckpt_path == ckpt_path  # not automatically cleaned
      assert trainer._checkpoint_connector._user_managed
  
      # now conflict with ckpt_path functionally
      with pytest.warns(
          UserWarning, match="trainer.ckpt_path =.*but then you passed"
      ):
          trainer.fit(model, ckpt_path="last")
      assert trainer.ckpt_path == last_path
      assert not trainer._checkpoint_connector._user_managed
  
      # mock model checkpoint instance that has saved a last checkpoint
      best_path = tmp_path / "best.ckpt"
      torch.save(ckpt_data, best_path)
      model_checkpoint.best_model_path = best_path
  
      # `trainer.test` will use this over "best" if statefully set
      trainer.ckpt_path = ckpt_path
      trainer.test()
      assert trainer.ckpt_path == ckpt_path
  
      # ckpt_path = "best" still works if it's reset
      trainer.ckpt_path = None
      # the state is cleared
      assert trainer._checkpoint_connector._ckpt_path is None
      assert not trainer._checkpoint_connector._user_managed
      trainer.test()
      assert trainer.ckpt_path == best_path
  
file_path: pytorch-lightning/tests/tests_pytorch/trainer/connectors/test_checkpoint_connector.py
imports: import os
  from unittest import mock
  from unittest.mock import Mock
  import pytest
  import torch
  from lightning.pytorch import Trainer
  from lightning.pytorch.callbacks import ModelCheckpoint
  from lightning.pytorch.demos.boring_classes import BoringModel
  from lightning.pytorch.trainer.states import TrainerFn
  from lightning.pytorch.utilities.migration.utils import _set_version
label_desc: Use image node_id 6 for calling a global function with example usage: test_stateful_trainer_ckpt_path_support(tmp_path) without return types