-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
After having disabled mypy (because of issue #221), I get the following error:
$ poetry run make
ruff format kalamine
16 files left unchanged
ruff check --fix kalamine
All checks passed!
ruff format --check kalamine
16 files already formatted
ruff check kalamine
All checks passed!
# mypy kalamine
python3 -m kalamine.cli guide > docs/README.md
python3 -m kalamine.cli build layouts/*.toml
... dist/q-ansi.ahk
`us` is not a valid locale
... dist/q-ansi.klc
... dist/q-ansi.keylayout
... dist/q-ansi.xkb_keymap
... dist/q-ansi.xkb_symbols
... dist/q-ansi.json
... dist/q-ansi.svg
... dist/q-intl.ahk
`us` is not a valid locale
... dist/q-intl.klc
... dist/q-intl.keylayout
... dist/q-intl.xkb_keymap
... dist/q-intl.xkb_symbols
... dist/q-intl.json
... dist/q-intl.svg
... dist/q-prog.ahk
`us` is not a valid locale
... dist/q-prog.klc
... dist/q-prog.keylayout
... dist/q-prog.xkb_keymap
... dist/q-prog.xkb_symbols
... dist/q-prog.json
... dist/q-prog.svg
python3 -m pytest
======================================= test session starts =======================================
platform darwin -- Python 3.10.9, pytest-8.4.1, pluggy-1.6.0
rootdir: /Users/nojhan/code/kalamine
configfile: pyproject.toml
collected 19 items
tests/test_macos.py F [ 5%]
tests/test_parser.py ... [ 21%]
tests/test_serializer_ahk.py ... [ 36%]
tests/test_serializer_keylayout.py ... [ 52%]
tests/test_serializer_klc.py ...... [ 84%]
tests/test_serializer_xkb.py ... [100%]
============================================ FAILURES =============================================
_________________________________________ test_keylayouts _________________________________________
def test_keylayouts():
> check_keylayout("q-ansi")
tests/test_macos.py:82:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
filename = 'q-ansi'
def check_keylayout(filename: str):
path = Path(__file__).parent.parent / f"dist/{filename}.keylayout"
tree = etree.parse(path, etree.XMLParser(recover=True))
dead_keys = []
# check all keymaps/layers: base, shift, caps, option, option+shift
for keymap_index in range(5):
keymap_query = f'//keyMap[@index="{keymap_index}"]'
keymap = tree.xpath(keymap_query)
assert len(keymap) == 1, f"{keymap_query} should be unique"
# check all key codes for this keymap / layer
# (the key codes below are not used, I don't know why)
excluded_keys = [
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
68,
73,
74,
90,
93,
94,
95,
]
for key_index in range(126):
if key_index in excluded_keys:
continue
# ensure the key is defined and unique
key_query = f'{keymap_query}/key[@code="{key_index}"]'
key = tree.xpath(key_query)
assert len(key) == 1, f"{key_query} should be unique"
# ensure the key has either a direct output or a valid action
action_id = key[0].get("action")
if action_id:
if action_id.startswith("dead_"):
dead_keys.append(action_id[5:])
action_query = f'//actions/action[@id="{action_id}"]'
action = tree.xpath(action_query)
assert len(action) == 1, f"{action_query} should be unique"
assert (
len(action_id) > 1
), f"{key_query} should have a multi-char action ID"
else:
assert (
> len(key[0].get("output")) <= 1
), f"{key_query} should have a one-char output"
E TypeError: object of type 'NoneType' has no len()
tests/test_macos.py:60: TypeError
===================================== short test summary info =====================================
FAILED tests/test_macos.py::test_keylayouts - TypeError: object of type 'NoneType' has no len()
================================== 1 failed, 18 passed in 1.79s ===================================
make: *** [test] Error 1
Metadata
Metadata
Assignees
Labels
No labels