Files
agr-assistent/tests/test_hotkey.py
T
mrleo1nidandClaude Opus 5 513d010c19 Этап 3: голосовой ввод по горячей клавише
- Глобальная горячая клавиша через RegisterHotKey (по умолчанию Win+Alt+Space)
- Запись с микрофона, конец фразы по паузе через Silero VAD, звуковые сигналы
- Распознавание faster-whisper large-v3-turbo на GPU, CUDA-библиотеки из pip-пакетов nvidia-*
- Состояния «слушаю» и «распознаю», кнопка «Говорить» в чате и пункт в трее
- Голосовая команда прерывает текущий ответ и озвучку
- Тесты горячей клавиши, детектора конца фразы и сеанса голосового ввода

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 03:34:09 +03:00

23 lines
639 B
Python

import pytest
from agr_assistent.hotkey import HotkeyError, parse_hotkey
@pytest.mark.parametrize(
("spec", "expected"),
[
("ctrl+alt+space", (0x0002 | 0x0001, 0x20)),
("Win + Shift + A", (0x0008 | 0x0004, ord("A"))),
("f12", (0, 0x7B)),
("ctrl+7", (0x0002, ord("7"))),
],
)
def test_parse_hotkey(spec: str, expected: tuple[int, int]) -> None:
assert parse_hotkey(spec) == expected
@pytest.mark.parametrize("spec", ["", "ctrl+", "hyper+a", "ctrl+f25", "ctrl+ж"])
def test_parse_hotkey_rejects_invalid(spec: str) -> None:
with pytest.raises(HotkeyError):
parse_hotkey(spec)