[anaconda][rhel7-branch/master/f23-branch][PATCH] Don't crash if the Japanese PC-98 keyboard is selected (#1190589)

Martin Kolman mkolman at redhat.com
Wed Sep 2 14:32:08 UTC 2015


Also add a test case verifying the PC-98 keyboard layout is
parsed correctly.

Resolves: rhbz#1190589
Signed-off-by: Martin Kolman <mkolman at redhat.com>
---
 pyanaconda/keyboard.py                  | 2 +-
 tests/pyanaconda_tests/keyboard_test.py | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/pyanaconda/keyboard.py b/pyanaconda/keyboard.py
index 1f3e572..0c71d3e 100644
--- a/pyanaconda/keyboard.py
+++ b/pyanaconda/keyboard.py
@@ -46,7 +46,7 @@ LOCALED_IFACE = "org.freedesktop.locale1"
 
 # should match and parse strings like 'cz' or 'cz (qwerty)' regardless of white
 # space
-LAYOUT_VARIANT_RE = re.compile(r'^\s*(\w+)\s*' # layout plus
+LAYOUT_VARIANT_RE = re.compile(r'^\s*([/\w]+)\s*' # layout plus
                                r'(?:(?:\(\s*([-\w]+)\s*\))' # variant in parentheses
                                r'|(?:$))\s*') # or nothing
 
diff --git a/tests/pyanaconda_tests/keyboard_test.py b/tests/pyanaconda_tests/keyboard_test.py
index 167ba8b..766beff 100644
--- a/tests/pyanaconda_tests/keyboard_test.py
+++ b/tests/pyanaconda_tests/keyboard_test.py
@@ -39,6 +39,11 @@ class ParsingAndJoiningTests(unittest.TestCase):
         self.assertEqual(layout, "cz")
         self.assertEqual(variant, "")
 
+        # a valid layout variant spec containing a slash
+        layout, variant = keyboard.parse_layout_variant("nec_vndr/jp")
+        self.assertEqual(layout, "nec_vndr/jp")
+        self.assertEqual(variant, "")
+
         # an invalid layout variant spec (missing layout)
         with self.assertRaises(keyboard.InvalidLayoutVariantSpec):
             layout, variant = keyboard.parse_layout_variant("")
-- 
2.4.3



More information about the anaconda-patches mailing list