code: def test_send_when_waiting_for_next_value_timed_out(self):
      # given
      numeric_values = [
          ChannelValue(x=i, y=i, ts=self._TS + i) for i in range(0, 3)
      ]
  
      # and
      semaphore = threading.Semaphore(0)
      self._EXPERIMENT._send_channels_values.side_effect = (
          lambda _: semaphore.release()
      )
  
      # and
      channels_values_sender = ChannelsValuesSender(
          experiment=self._EXPERIMENT
      )
  
      # when
      for channel_value in numeric_values:
          channels_values_sender.send(
              self._NUMERIC_CHANNEL.name,
              self._NUMERIC_CHANNEL.channelType,
              channel_value,
          )
  
      # then
      semaphore.acquire()
      self._EXPERIMENT._send_channels_values.assert_called_with(
          [
              ChannelIdWithValues(
                  channel_id=self._NUMERIC_CHANNEL.id,
                  channel_name=self._NUMERIC_CHANNEL.name,
                  channel_type=self._NUMERIC_CHANNEL.channelType,
                  channel_namespace=ChannelNamespace.USER,
                  channel_values=numeric_values,
              )
          ]
      )
  
      # and
      self._EXPERIMENT._send_channels_values.reset_mock()
      channels_values_sender.join()
      # and
      self._EXPERIMENT._send_channels_values.assert_not_called()
  
file_path: neptune-client/tests/unit/neptune/legacy/internal/channels/test_channels_values_sender.py
imports: from __future__ import unicode_literals
  import threading
  import time
  import unittest
  import mock
  from neptune.legacy.internal.channels.channels import ChannelIdWithValues, ChannelNamespace, ChannelType, ChannelValue
  from neptune.legacy.internal.channels.channels_values_sender import ChannelsValuesSender, ChannelsValuesSendingThread
  from tests.unit.neptune.legacy.experiments_object_factory import a_channel
label_desc: Use image node_id 7 for calling the TestChannelsValuesSender obj's underlying member method code with example usage: obj.test_send_when_waiting_for_next_value_timed_out() without return types