File: test_ecodes.py

package info (click to toggle)
python-evdev 1.9.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 416 kB
  • sloc: python: 1,388; ansic: 739; makefile: 142; sh: 14
file content (41 lines) | stat: -rw-r--r-- 1,021 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from evdev import ecodes
from evdev import ecodes_runtime


prefixes = "KEY ABS REL SW MSC LED BTN REP SND ID EV BUS SYN FF_STATUS FF UI_FF"


def to_tuples(val):
    t = lambda x: tuple(x) if isinstance(x, list) else x
    return map(t, val)


def test_equality():
    keys = []
    for i in prefixes.split():
        keys.extend(getattr(ecodes, i, {}).keys())

    assert set(keys) == set(ecodes.ecodes.values())


def test_access():
    assert ecodes.KEY_A == ecodes.ecodes["KEY_A"] == ecodes.KEY_A
    assert ecodes.KEY[ecodes.ecodes["KEY_A"]] == "KEY_A"
    assert ecodes.REL[0] == "REL_X"


def test_overlap():
    vals_ff = set(to_tuples(ecodes.FF.values()))
    vals_ff_status = set(to_tuples(ecodes.FF_STATUS.values()))
    assert bool(vals_ff & vals_ff_status) is False


def test_generated():
    e_run = vars(ecodes_runtime)
    e_gen = vars(ecodes)

    def keys(v):
        res = {k for k in v.keys() if not k.startswith("_") and not k[1].islower()}
        return res

    assert keys(e_run) == keys(e_gen)