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

Vratislav Podzimek vpodzime at redhat.com
Wed Sep 2 14:41:57 UTC 2015


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 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("")
ACK.

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic



More information about the anaconda-patches mailing list