From b1fff0c286c4cd25acc92f53b9873106ac8fcc8a Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Mon, 23 Nov 2020 23:41:13 +0100 Subject: [PATCH] tested reverse mapping --- keymapper/state.py | 1 - tests/testcases/mapping.py | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/keymapper/state.py b/keymapper/state.py index 7142071e..3027d7c2 100644 --- a/keymapper/state.py +++ b/keymapper/state.py @@ -33,7 +33,6 @@ def parse_xmodmap(mapping): """Read the output of xmodmap into a mapping.""" xmodmap = subprocess.check_output(['xmodmap', '-pke']).decode() + '\n' mappings = re.findall(r'(\d+) = (.+)\n', xmodmap) - # TODO is this tested? for keycode, characters in mappings: # this is the "array" format needed for symbols files character = ', '.join(characters.split()) diff --git a/tests/testcases/mapping.py b/tests/testcases/mapping.py index 260fc643..7c4d629c 100644 --- a/tests/testcases/mapping.py +++ b/tests/testcases/mapping.py @@ -22,6 +22,7 @@ import unittest from keymapper.mapping import Mapping +from keymapper.state import parse_xmodmap class TestMapping(unittest.TestCase): @@ -29,6 +30,13 @@ class TestMapping(unittest.TestCase): self.mapping = Mapping() self.assertFalse(self.mapping.changed) + def test_parse_xmodmap(self): + parse_xmodmap(self.mapping) + self.assertGreater(len(self.mapping), 100) + # keycode 10 is typically mapped to '1' + self.assertEqual(self.mapping.get_keycode('1'), 10) + self.assertTrue(self.mapping.get_character(10).startswith('1')) + def test_save_load(self): self.mapping.change(10, '1') self.mapping.change(11, '2')