code: def test_on_progress(self):
      def on_progress(progress_handle):
          pass
  
      with self._patch_mailbox() as (event_mock, _):
          mailbox, handle, result = get_test_setup()
          mock_on_progress = Mock(spec=on_progress)
          handle.add_progress(mock_on_progress)
          _ = handle.wait(timeout=3)
          self.assertEqual(mock_on_progress.call_count, 2)
          if sys.version_info[:2] >= (
              3,
              8,
          ):  # call_args.args only in 3.8+
              self.assertIsInstance(
                  mock_on_progress.call_args.args[0], MailboxProgress
              )
  
imports: import sys
  import threading
  import time
  from contextlib import contextmanager
  from unittest import TestCase
  from unittest.mock import Mock, patch
  from parameterized import parameterized
  from wandb.proto import wandb_internal_pb2
  from wandb.sdk.lib.mailbox import Mailbox, MailboxProbe, MailboxProgress
label_desc: Use image node_id 5 for calling the TestWithMockedTime obj's underlying member method code with example usage: obj.test_on_progress() without return types