Files

41 lines
1.3 KiB
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
def test_recorder_stores_device_param():
from audio import AudioRecorder
rec = AudioRecorder(device="my-pipewire-source")
assert rec.device == "my-pipewire-source"
def test_recorder_device_none_when_empty_string():
from audio import AudioRecorder
rec = AudioRecorder(device="")
assert rec.device is None