code: def test_should_stop_early_stopping_conditions_not_met(
      caplog,
      min_epochs,
      min_steps,
      current_epoch,
      global_step,
      early_stop,
      epoch_loop_done,
      raise_info_msg,
  ):
      """Test that checks that info message is logged when users sets `should_stop` but min conditions are not met."""
      trainer = Trainer(
          min_epochs=min_epochs,
          min_steps=min_steps,
          limit_val_batches=0,
      )
      trainer.fit_loop.max_batches = 10
      trainer.should_stop = True
      trainer.fit_loop.epoch_loop.automatic_optimization.optim_progress.optimizer.step.total.completed = (
          global_step
      )
      trainer.fit_loop.epoch_loop.batch_progress.current.ready = (
          global_step
      )
      trainer.fit_loop.epoch_progress.current.completed = (
          current_epoch - 1
      )
  
      message = f"min_epochs={min_epochs}` or `min_steps={min_steps}` has not been met. Training will continue"
      with caplog.at_level(
          logging.INFO, logger="lightning.pytorch.loops"
      ):
          assert trainer.fit_loop.epoch_loop.done is epoch_loop_done
  
      assert (message in caplog.text) is raise_info_msg
      assert trainer.fit_loop._can_stop_early is early_stop
  
file_path: pytorch-lightning/tests/tests_pytorch/loops/test_training_epoch_loop.py
imports: import logging
  from unittest.mock import Mock, patch
  import pytest
  from lightning.pytorch.demos.boring_classes import BoringModel
  from lightning.pytorch.trainer.trainer import Trainer
label_desc: Use image node_id 2 for calling a global function with example usage: test_should_stop_early_stopping_conditions_not_met(caplog, min_epochs, min_steps, current_epoch, global_step, early_stop, epoch_loop_done, raise_info_msg) without return types