/
sapertlt
/
layout_switcher
Обзор
Документация
Войти
/
sapertlt
/
layout_switcher
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/test_mappings.py
70 строк
3 KB
Andrey Nikolaev
feat: словарная проверка и авто-загрузка словарей
16 июн 2026, 22:08
16 июн 2026, 22:08
c16bbde
Код
Авторство
О чём код?
""" Тесты маппинга раскладок EN ↔ RU. """ import pytest class TestEnRuMapping: """Тесты для EnRuMapping — маппинг QWERTY ↔ ЙЦУКЕН""" @pytest.fixture def mapping(self): from layout_switcher.layout.mappings.en_ru import EnRuMapping return EnRuMapping() def test_convert_hello(self, mapping): """'ghbdtn' в EN раскладке → 'привет' в RU""" assert mapping.convert("ghbdtn") == "привет" def test_convert_hello_capitalized(self, mapping): """'Ghbdtn' → 'Привет'""" assert mapping.convert("Ghbdtn") == "Привет" def test_reverse_hello(self, mapping): """'привет' в RU → 'ghbdtn' в EN""" assert mapping.reverse("привет") == "ghbdtn" def test_convert_rullo(self, mapping): """'руддщ' → 'hello' (обратное направление через reverse)""" assert mapping.reverse("руддщ") == "hello" def test_roundtrip_en_to_ru(self, mapping): """Двойная конвертация EN→RU→EN должна вернуть оригинал""" original = "the quick brown fox" converted = mapping.convert(original) restored = mapping.reverse(converted) assert restored == original def test_roundtrip_ru_to_en(self, mapping): """Двойная конвертация RU→EN→RU должна вернуть оригинал""" original = "привет мир" converted = mapping.reverse(original) restored = mapping.convert(converted) assert restored == original def test_numbers_unchanged(self, mapping): """Цифры не меняются при конвертации""" assert mapping.convert("123") == "123" assert mapping.reverse("123") == "123" def test_special_chars_shift(self, mapping): """Символы Shift-ряда конвертируются правильно""" # Точка и запятая в русской раскладке result = mapping.convert(".") assert result == "ю" def test_get_source_id(self, mapping): assert mapping.get_source_id() == "en" def test_get_target_id(self, mapping): assert mapping.get_target_id() == "ru" def test_keycode_map_not_empty(self, mapping): """Карта keycodes не должна быть пустой""" keymap = mapping.get_keycode_map() assert len(keymap) > 0 # Проверяем формат: каждое значение — кортеж из двух или четырех строк for key, value in keymap.items(): assert isinstance(value, tuple) assert len(value) in (2, 4)