From 2cafc6d3922503e6ac7df6920279ed7203bfe6d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20La=C3=ADns?= <lains@archlinux.org> Date: Tue, 10 Mar 2020 12:07:09 +0000 Subject: [PATCH] clib: fix event_to_value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Filipe LaÃns <lains@archlinux.org> --- libevdev/_clib.py | 5 +++-- test/test_clib.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libevdev/_clib.py b/libevdev/_clib.py index 8397874..6e4ab2c 100644 --- a/libevdev/_clib.py +++ b/libevdev/_clib.py @@ -690,8 +690,9 @@ class Libevdev(_LibraryWrapper): if event_code is not None and event_value is not None: if not isinstance(event_type, int): event_type = cls.event_to_value(event_type) - v = cls._event_value_from_name(event_type, - event_code.encode("iso8859-1"), + if not isinstance(event_code, int): + event_code = cls.event_to_value(event_type, event_code) + v = cls._event_value_from_name(event_type, event_code, event_value.encode("iso8859-1")) elif event_code is not None: if not isinstance(event_type, int): diff --git a/test/test_clib.py b/test/test_clib.py index 07cc6a1..5db67d4 100644 --- a/test/test_clib.py +++ b/test/test_clib.py @@ -123,6 +123,17 @@ class TestNameConversion(unittest.TestCase): v = Libevdev.event_to_value("EV_REL", "KEY_ESC") self.assertIsNone(v) + def test_event_value_to_value(self): + v = Libevdev.event_to_value("EV_ABS", "ABS_MT_TOOL_TYPE", "MT_TOOL_FINGER") + self.assertEqual(v, 0) + + v = Libevdev.event_to_value("EV_ABS", "ABS_MT_TOOL_TYPE", "MT_TOOL_PEN") + self.assertEqual(v, 1) + + def test_event_value_to_value_invalid(self): + v = Libevdev.event_to_value("EV_ABS", "ABS_X", "foo") + self.assertIsNone(v) + class TestLibevdevDevice(unittest.TestCase): -- GitLab