Тесты и фикстуры¶
Тесты приложения офлайновые: железо не нужно, Python тоже.
Всё, что они читают, лежит в tests/fixtures/ и закоммичено в репозиторий приложения.
Что проверяют тесты¶
| Файл | Что проверяет |
|---|---|
protocol.test.ts |
парсеры, payload'ы режимов, записи bind-таблицы, карту клавиш |
macro.test.ts |
токены, блоб макросов, XML вендорской утилиты |
apply.test.ts |
порядок секций и расстановку save в apply на поддельной клавиатуре |
smoke.test.ts |
что каркас и общие модули импортируются |
preview.test.ts |
имитацию режимов, перевод кодов клавиш, игнорирование направления |
Запуск из каталога приложения:
Состав фикстур¶
| Файл | Содержимое |
|---|---|
python.json |
Эталонные байты из katana.py: payload'ы, bind-записи, блоб, XML |
dumps.json |
SET-пакеты вендорских дампов: макросы и три дампа переназначения |
test.xml |
Вендорский XML макроса |
macros-create-test.xml |
Вендорский XML, использованный при создании макроса |
profile.example.yaml |
Копия katana.yaml.example для проверки разбора профиля |
Обновление¶
Источник истины — katana.py и датасет дампов в Python-репозитории.
Поэтому фикстуры собирает его генератор misc/make_ts_fixtures.py, а в приложение они попадают готовыми.
После изменений в katana.py или в дампах пересоберите фикстуры из корня Python-репозитория:
.venv/bin/python misc/make_ts_fixtures.py # записать в tests/fixtures
.venv/bin/python misc/make_ts_fixtures.py --check # только сверить
При раздельных репозиториях каталог задаётся явно: --out <путь>.
Геометрия клавиатуры (src/renderer/src/keyboard/layout.json) пересоздаётся генератором misc/make_layout.py, тоже с --out.
Подписи клавиш правятся в словаре LABELS этого скрипта: там исправлены опечатки вендора, цифровой ряд записан как 1! … =+, а тильда — как `~ё.
Там же сокращения PS, SL, PB, HM, PU, PD и капс для модификаторов.
Функция label_of() переводит в капс и остальные многобуквенные служебные подписи.
Описание генераторов — в разделе Скрипты репозитория.