code: def test__no_progress__proper_then_too_long_different_cycles(
      monotonic,
  ):
      # given
      container = MagicMock()
      async_no_progress_callback = MagicMock()
  
      # and
      monotonic.side_effect = [5.0, 5.01, 16.0, 16.01]
  
      # and
      queue = Queue()
      # First proper batch
      signal_batch_started(queue=queue, occured_at=0.0)
      signal_batch_processed(queue=queue, occured_at=4.0)
      # Second too long batch
      signal_batch_started(queue=queue, occured_at=5.0)
  
      # and
      processor = SignalsProcessor(
          period=10,
          container=container,
          queue=queue,
          async_lag_threshold=1.0,
          async_no_progress_threshold=5.0,
          async_no_progress_callback=async_no_progress_callback,
          callbacks_interval=5,
          in_async=False,
      )
  
      # when
      processor.work()
  
      # then
      async_no_progress_callback.assert_not_called()
  
      # given
      signal_batch_processed(queue=queue, occured_at=15.0)
  
      # when
      processor.work()
  
      # then
      async_no_progress_callback.assert_called_once_with(container)
  
      # and
      monotonic.assert_has_calls(calls=(call(), call(), call()))
      async_no_progress_callback.assert_has_calls(
          calls=(call(container),), any_order=True
      )
  
file_path: neptune-client/tests/unit/neptune/new/internal/signals_processing/test_signals_processor.py
imports: from queue import Queue
  from mock import MagicMock, call, patch
  from neptune.internal.signals_processing.signals_processor import SignalsProcessor
  from neptune.internal.signals_processing.utils import signal_batch_lag, signal_batch_processed, signal_batch_started
label_desc: Use image node_id 8 for calling a global function with example usage: test__no_progress__proper_then_too_long_different_cycles(monotonic) without return types