mirror of
https://github.com/romanz/amodem.git
synced 2026-02-06 08:38:06 +08:00
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
from amodem import audio, config
|
|
|
|
import mock
|
|
import pytest
|
|
|
|
|
|
def test():
|
|
length = 1024
|
|
data = b'\x12\x34' * length
|
|
with mock.patch('ctypes.CDLL') as cdll:
|
|
lib = mock.Mock()
|
|
lib.Pa_GetErrorText = lambda code: b'Error' if code else b'Success'
|
|
lib.Pa_GetDefaultOutputDevice.return_value = 1
|
|
lib.Pa_GetDefaultInputDevice.return_value = 2
|
|
lib.Pa_OpenStream.return_value = 0
|
|
cdll.return_value = lib
|
|
interface = audio.Interface(config=config.fastest(), debug=True)
|
|
with interface.load(name='portaudio'):
|
|
s = interface.player()
|
|
assert s.params.device == 1
|
|
s.stream = 1 # simulate non-zero output stream handle
|
|
s.write(data=data)
|
|
s.close()
|
|
|
|
with interface:
|
|
s = interface.recorder()
|
|
assert s.params.device == 2
|
|
s.stream = 2 # simulate non-zero input stream handle
|
|
s.read(len(data))
|
|
s.close()
|
|
|
|
with pytest.raises(Exception):
|
|
interface._error_check(1)
|