30 lines
1001 B
Python
30 lines
1001 B
Python
import numpy as np
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
|
|
def test_recorder_starts_and_stops():
|
|
from audio import AudioRecorder
|
|
with patch("sounddevice.InputStream") as MockStream:
|
|
mock_stream = MagicMock()
|
|
MockStream.return_value.start = MagicMock()
|
|
MockStream.return_value.stop = MagicMock()
|
|
MockStream.return_value.close = MagicMock()
|
|
recorder = AudioRecorder(sample_rate=16000)
|
|
assert not recorder.is_recording
|
|
recorder._stream = MockStream.return_value
|
|
recorder.is_recording = True
|
|
recorder.stop()
|
|
assert not recorder.is_recording
|
|
|
|
|
|
def test_recorder_save_wav(tmp_path):
|
|
import wave
|
|
from audio import AudioRecorder
|
|
recorder = AudioRecorder(sample_rate=16000)
|
|
recorder._buffer = [np.zeros(1600, dtype=np.int16)]
|
|
out = str(tmp_path / "test.wav")
|
|
recorder.save_wav(out)
|
|
with wave.open(out) as wf:
|
|
assert wf.getframerate() == 16000
|
|
assert wf.getnchannels() == 1
|