[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