Merge dev with main #27
@@ -55,23 +55,50 @@ def test_sending_audio(mocker):
|
|||||||
mock_choose_mic.return_value = {"name": u"Some mic", "index": 0L}
|
mock_choose_mic.return_value = {"name": u"Some mic", "index": 0L}
|
||||||
|
|
||||||
mock_state = mocker.patch("robot_interface.endpoints.audio_sender.state")
|
mock_state = mocker.patch("robot_interface.endpoints.audio_sender.state")
|
||||||
mock_state.exit_event.is_set.return_value = False
|
mock_state.exit_event.is_set.side_effect = [False, True]
|
||||||
|
|
||||||
mock_audio = mocker.patch("robot_interface.endpoints.audio_sender.pyaudio")
|
|
||||||
mock_audio.PyAudio = mock.Mock()
|
|
||||||
stream = mock.Mock()
|
|
||||||
stream.read = _fake_read
|
|
||||||
mock_audio.PyAudio.open.return_value = stream
|
|
||||||
|
|
||||||
mock_zmq_context = mock.Mock()
|
mock_zmq_context = mock.Mock()
|
||||||
send_socket = mock.Mock()
|
send_socket = mock.Mock()
|
||||||
|
|
||||||
|
# If there's something wrong with the microphone, it will raise an IOError when `read`ing.
|
||||||
|
stream = mock.Mock()
|
||||||
|
stream.read = _fake_read
|
||||||
|
|
||||||
sender = AudioSender(mock_zmq_context)
|
sender = AudioSender(mock_zmq_context)
|
||||||
sender.socket.send = send_socket
|
sender.socket.send = send_socket
|
||||||
|
sender.audio.open = mock.Mock()
|
||||||
|
sender.audio.open.return_value = stream
|
||||||
|
|
||||||
sender.start()
|
sender.start()
|
||||||
time.sleep(0.01)
|
|
||||||
mock_state.exit_event.is_set.return_value = True
|
|
||||||
sender.wait_until_done()
|
sender.wait_until_done()
|
||||||
|
|
||||||
send_socket.assert_called()
|
send_socket.assert_called()
|
||||||
|
|
||||||
|
|
||||||
|
def _fake_read_error(num_frames):
|
||||||
|
raise IOError()
|
||||||
|
|
||||||
|
|
||||||
|
def test_break_microphone(mocker):
|
||||||
|
mock_choose_mic = mocker.patch("robot_interface.endpoints.audio_sender.choose_mic_default")
|
||||||
|
mock_choose_mic.return_value = {"name": u"Some mic", "index": 0L}
|
||||||
|
|
||||||
|
mock_state = mocker.patch("robot_interface.endpoints.audio_sender.state")
|
||||||
|
mock_state.exit_event.is_set.side_effect = [False, True]
|
||||||
|
|
||||||
|
mock_zmq_context = mock.Mock()
|
||||||
|
send_socket = mock.Mock()
|
||||||
|
|
||||||
|
# If there's something wrong with the microphone, it will raise an IOError when `read`ing.
|
||||||
|
stream = mock.Mock()
|
||||||
|
stream.read = _fake_read_error
|
||||||
|
|
||||||
|
sender = AudioSender(mock_zmq_context)
|
||||||
|
sender.socket.send = send_socket
|
||||||
|
sender.audio.open = mock.Mock()
|
||||||
|
sender.audio.open.return_value = stream
|
||||||
|
|
||||||
|
sender.start()
|
||||||
|
sender.wait_until_done()
|
||||||
|
|
||||||
|
send_socket.assert_not_called()
|
||||||
|
|||||||
Reference in New Issue
Block a user