Files
tuimble/tests/test_ptt.py
Username 836018d146 feat: scaffold tuimble TUI mumble client
Core modules: TUI app (textual), mumble protocol client,
audio pipeline (sounddevice + opus), push-to-talk with
kitty protocol / evdev / toggle backends. Config via TOML.
2026-02-24 11:44:06 +01:00

38 lines
857 B
Python

"""Tests for push-to-talk backends."""
from tuimble.ptt import KittyPtt, PttState, TogglePtt
def test_kitty_ptt_press_release():
states = []
ptt = KittyPtt(lambda tx: states.append(tx))
assert ptt.state is PttState.IDLE
ptt.key_down()
assert ptt.state is PttState.TRANSMITTING
assert states == [True]
ptt.key_up()
assert ptt.state is PttState.IDLE
assert states == [True, False]
def test_kitty_ptt_no_duplicate_events():
states = []
ptt = KittyPtt(lambda tx: states.append(tx))
ptt.key_down()
ptt.key_down() # repeat, no state change
assert states == [True]
def test_toggle_ptt():
states = []
ptt = TogglePtt(lambda tx: states.append(tx))
ptt.toggle()
assert ptt.transmitting is True
ptt.toggle()
assert ptt.transmitting is False
assert states == [True, False]