mirror of
https://github.com/romanz/amodem.git
synced 2026-02-06 16:48:06 +08:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from amodem import alsa, config
|
|
|
|
import mock
|
|
|
|
|
|
def test_alsa():
|
|
interface = alsa.Interface(config=config.fastest())
|
|
interface.launch = mock.Mock()
|
|
with interface:
|
|
r = interface.recorder()
|
|
r.read(2)
|
|
r.close()
|
|
|
|
p = mock.call(
|
|
args='arecord -f S16_LE -c 1 -r 32000 -T 100 -q -'.split(),
|
|
stdout=-1)
|
|
assert interface.launch.mock_calls == [p, p.stdout.read(2), p.kill()]
|
|
|
|
interface.launch = mock.Mock()
|
|
with interface:
|
|
p = interface.player()
|
|
p.write('\x00\x00')
|
|
p.close()
|
|
|
|
p = mock.call(
|
|
args='aplay -f S16_LE -c 1 -r 32000 -T 100 -q -'.split(),
|
|
stdin=-1)
|
|
assert interface.launch.mock_calls == [
|
|
p, p.stdin.write('\x00\x00'), p.stdin.close(), p.wait()
|
|
]
|
|
|
|
|
|
def test_alsa_subprocess():
|
|
interface = alsa.Interface(config=config.fastest())
|
|
with mock.patch('subprocess.Popen') as popen:
|
|
with interface:
|
|
p = interface.launch(args=['foobar'])
|
|
p.wait.side_effect = OSError('invalid command')
|
|
assert interface.processes == [p]
|
|
assert popen.mock_calls == [mock.call(args=['foobar'])]
|