On Wed, 2015-09-02 at 16:32 +0200, Martin Kolman wrote:
Also add a test case verifying the PC-98 keyboard layout is
parsed correctly.
Resolves: rhbz#1190589
Signed-off-by: Martin Kolman <mkolman(a)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("")
ACK.
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic