"""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]