From 2ca15d7667de0ef519deff16e0e24adcd6937738 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 28 Feb 2018 10:59:01 +0100 Subject: [PATCH] Add tests for lower-/uppercase text --- tests/unit/keyinput/key_data.py | 273 ++++++++++++++------------- tests/unit/keyinput/test_keyutils.py | 8 + 2 files changed, 145 insertions(+), 136 deletions(-) diff --git a/tests/unit/keyinput/key_data.py b/tests/unit/keyinput/key_data.py index 2e9dda46a..d9111d9aa 100644 --- a/tests/unit/keyinput/key_data.py +++ b/tests/unit/keyinput/key_data.py @@ -28,6 +28,7 @@ class Key: attribute = attr.ib() name = attr.ib(None) # default: name == attribute text = attr.ib('') + uppertext = attr.ib('') member = attr.ib(None) @@ -110,143 +111,143 @@ KEYS = [ Key('Direction_L', 'Direction L'), Key('Direction_R', 'Direction R'), ### 7 bit printable ASCII - Key('Space'), - Key('Any', 'Space'), # Same value - Key('Exclam', '!'), - Key('QuoteDbl', '"'), - Key('NumberSign', '#'), - Key('Dollar', '$'), - Key('Percent', '%'), - Key('Ampersand', '&'), - Key('Apostrophe', "'"), - Key('ParenLeft', '('), - Key('ParenRight', ')'), - Key('Asterisk', '*'), - Key('Plus', '+'), - Key('Comma', ','), - Key('Minus', '-'), - Key('Period', '.'), - Key('Slash', '/'), - Key('0'), - Key('1'), - Key('2'), - Key('3'), - Key('4'), - Key('5'), - Key('6'), - Key('7'), - Key('8'), - Key('9'), - Key('Colon', ':'), - Key('Semicolon', ';'), - Key('Less', '<'), - Key('Equal', '='), - Key('Greater', '>'), - Key('Question', '?'), - Key('At', '@'), - Key('A'), - Key('B'), - Key('C'), - Key('D'), - Key('E'), - Key('F'), - Key('G'), - Key('H'), - Key('I'), - Key('J'), - Key('K'), - Key('L'), - Key('M'), - Key('N'), - Key('O'), - Key('P'), - Key('Q'), - Key('R'), - Key('S'), - Key('T'), - Key('U'), - Key('V'), - Key('W'), - Key('X'), - Key('Y'), - Key('Z'), - Key('BracketLeft', '['), - Key('Backslash', '\\'), - Key('BracketRight', ']'), - Key('AsciiCircum', '^'), - Key('Underscore', '_'), - Key('QuoteLeft', '`'), - Key('BraceLeft', '{'), - Key('Bar', '|'), - Key('BraceRight', '}'), - Key('AsciiTilde', '~'), + Key('Space', text=' ', uppertext=' '), + Key('Any', 'Space', text=' ', uppertext=' '), # Same value + Key('Exclam', '!', text='!', uppertext='!'), + Key('QuoteDbl', '"', text='"', uppertext='"'), + Key('NumberSign', '#', text='#', uppertext='#'), + Key('Dollar', '$', text='$', uppertext='$'), + Key('Percent', '%', text='%', uppertext='%'), + Key('Ampersand', '&', text='&', uppertext='&'), + Key('Apostrophe', "'", text="'", uppertext="'"), + Key('ParenLeft', '(', text='(', uppertext='('), + Key('ParenRight', ')', text=')', uppertext=')'), + Key('Asterisk', '*', text='*', uppertext='*'), + Key('Plus', '+', text='+', uppertext='+'), + Key('Comma', ',', text=',', uppertext=','), + Key('Minus', '-', text='-', uppertext='-'), + Key('Period', '.', text='.', uppertext='.'), + Key('Slash', '/', text='/', uppertext='/'), + Key('0', text='0', uppertext='0'), + Key('1', text='1', uppertext='1'), + Key('2', text='2', uppertext='2'), + Key('3', text='3', uppertext='3'), + Key('4', text='4', uppertext='4'), + Key('5', text='5', uppertext='5'), + Key('6', text='6', uppertext='6'), + Key('7', text='7', uppertext='7'), + Key('8', text='8', uppertext='8'), + Key('9', text='9', uppertext='9'), + Key('Colon', ':', text=':', uppertext=':'), + Key('Semicolon', ';', text=';', uppertext=';'), + Key('Less', '<', text='<', uppertext='<'), + Key('Equal', '=', text='=', uppertext='='), + Key('Greater', '>', text='>', uppertext='>'), + Key('Question', '?', text='?', uppertext='?'), + Key('At', '@', text='@', uppertext='@'), + Key('A', text='a', uppertext='A'), + Key('B', text='b', uppertext='B'), + Key('C', text='c', uppertext='C'), + Key('D', text='d', uppertext='D'), + Key('E', text='e', uppertext='E'), + Key('F', text='f', uppertext='F'), + Key('G', text='g', uppertext='G'), + Key('H', text='h', uppertext='H'), + Key('I', text='i', uppertext='I'), + Key('J', text='j', uppertext='J'), + Key('K', text='k', uppertext='K'), + Key('L', text='l', uppertext='L'), + Key('M', text='m', uppertext='M'), + Key('N', text='n', uppertext='N'), + Key('O', text='o', uppertext='O'), + Key('P', text='p', uppertext='P'), + Key('Q', text='q', uppertext='Q'), + Key('R', text='r', uppertext='R'), + Key('S', text='s', uppertext='S'), + Key('T', text='t', uppertext='T'), + Key('U', text='u', uppertext='U'), + Key('V', text='v', uppertext='V'), + Key('W', text='w', uppertext='W'), + Key('X', text='x', uppertext='X'), + Key('Y', text='y', uppertext='Y'), + Key('Z', text='z', uppertext='Z'), + Key('BracketLeft', '[', text='[', uppertext='['), + Key('Backslash', '\\', text='\\', uppertext='\\'), + Key('BracketRight', ']', text=']', uppertext=']'), + Key('AsciiCircum', '^', text='^', uppertext='^'), + Key('Underscore', '_', text='_', uppertext='_'), + Key('QuoteLeft', '`', text='`', uppertext='`'), + Key('BraceLeft', '{', text='{', uppertext='{'), + Key('Bar', '|', text='|', uppertext='|'), + Key('BraceRight', '}', text='}', uppertext='}'), + Key('AsciiTilde', '~', text='~', uppertext='~'), - Key('nobreakspace', ' '), - Key('exclamdown', '¡'), - Key('cent', '¢'), - Key('sterling', '£'), - Key('currency', '¤'), - Key('yen', '¥'), - Key('brokenbar', '¦'), - Key('section', '§'), - Key('diaeresis', '¨'), - Key('copyright', '©'), - Key('ordfeminine', 'ª'), - Key('guillemotleft', '«'), - Key('notsign', '¬'), - Key('hyphen', '­'), - Key('registered', '®'), - Key('macron', '¯'), - Key('degree', '°'), - Key('plusminus', '±'), - Key('twosuperior', '²'), - Key('threesuperior', '³'), - Key('acute', '´'), - Key('mu', 'Μ'), - Key('paragraph', '¶'), - Key('periodcentered', '·'), - Key('cedilla', '¸'), - Key('onesuperior', '¹'), - Key('masculine', 'º'), - Key('guillemotright', '»'), - Key('onequarter', '¼'), - Key('onehalf', '½'), - Key('threequarters', '¾'), - Key('questiondown', '¿'), - Key('Agrave', 'À'), - Key('Aacute', 'Á'), - Key('Acircumflex', 'Â'), - Key('Atilde', 'Ã'), - Key('Adiaeresis', 'Ä'), - Key('Aring', 'Å'), - Key('AE', 'Æ'), - Key('Ccedilla', 'Ç'), - Key('Egrave', 'È'), - Key('Eacute', 'É'), - Key('Ecircumflex', 'Ê'), - Key('Ediaeresis', 'Ë'), - Key('Igrave', 'Ì'), - Key('Iacute', 'Í'), - Key('Icircumflex', 'Î'), - Key('Idiaeresis', 'Ï'), - Key('ETH', 'Ð'), - Key('Ntilde', 'Ñ'), - Key('Ograve', 'Ò'), - Key('Oacute', 'Ó'), - Key('Ocircumflex', 'Ô'), - Key('Otilde', 'Õ'), - Key('Odiaeresis', 'Ö'), - Key('multiply', '×'), - Key('Ooblique', 'Ø'), - Key('Ugrave', 'Ù'), - Key('Uacute', 'Ú'), - Key('Ucircumflex', 'Û'), - Key('Udiaeresis', 'Ü'), - Key('Yacute', 'Ý'), - Key('THORN', 'Þ'), - Key('ssharp', 'ß'), - Key('division', '÷'), - Key('ydiaeresis', 'Ÿ'), + Key('nobreakspace', ' ', text=' ', uppertext=' '), + Key('exclamdown', '¡', text='¡', uppertext='¡'), + Key('cent', '¢', text='¢', uppertext='¢'), + Key('sterling', '£', text='£', uppertext='£'), + Key('currency', '¤', text='¤', uppertext='¤'), + Key('yen', '¥', text='¥', uppertext='¥'), + Key('brokenbar', '¦', text='¦', uppertext='¦'), + Key('section', '§', text='§', uppertext='§'), + Key('diaeresis', '¨', text='¨', uppertext='¨'), + Key('copyright', '©', text='©', uppertext='©'), + Key('ordfeminine', 'ª', text='ª', uppertext='ª'), + Key('guillemotleft', '«', text='«', uppertext='«'), + Key('notsign', '¬', text='¬', uppertext='¬'), + Key('hyphen', '­', text='­', uppertext='­'), + Key('registered', '®', text='®', uppertext='®'), + Key('macron', '¯', text='¯', uppertext='¯'), + Key('degree', '°', text='°', uppertext='°'), + Key('plusminus', '±', text='±', uppertext='±'), + Key('twosuperior', '²', text='²', uppertext='²'), + Key('threesuperior', '³', text='³', uppertext='³'), + Key('acute', '´', text='´', uppertext='´'), + Key('mu', 'Μ', text='μ', uppertext='Μ'), + Key('paragraph', '¶', text='¶', uppertext='¶'), + Key('periodcentered', '·', text='·', uppertext='·'), + Key('cedilla', '¸', text='¸', uppertext='¸'), + Key('onesuperior', '¹', text='¹', uppertext='¹'), + Key('masculine', 'º', text='º', uppertext='º'), + Key('guillemotright', '»', text='»', uppertext='»'), + Key('onequarter', '¼', text='¼', uppertext='¼'), + Key('onehalf', '½', text='½', uppertext='½'), + Key('threequarters', '¾', text='¾', uppertext='¾'), + Key('questiondown', '¿', text='¿', uppertext='¿'), + Key('Agrave', 'À', text='à', uppertext='À'), + Key('Aacute', 'Á', text='á', uppertext='Á'), + Key('Acircumflex', 'Â', text='â', uppertext='Â'), + Key('Atilde', 'Ã', text='ã', uppertext='Ã'), + Key('Adiaeresis', 'Ä', text='ä', uppertext='Ä'), + Key('Aring', 'Å', text='å', uppertext='Å'), + Key('AE', 'Æ', text='æ', uppertext='Æ'), + Key('Ccedilla', 'Ç', text='ç', uppertext='Ç'), + Key('Egrave', 'È', text='è', uppertext='È'), + Key('Eacute', 'É', text='é', uppertext='É'), + Key('Ecircumflex', 'Ê', text='ê', uppertext='Ê'), + Key('Ediaeresis', 'Ë', text='ë', uppertext='Ë'), + Key('Igrave', 'Ì', text='ì', uppertext='Ì'), + Key('Iacute', 'Í', text='í', uppertext='Í'), + Key('Icircumflex', 'Î', text='î', uppertext='Î'), + Key('Idiaeresis', 'Ï', text='ï', uppertext='Ï'), + Key('ETH', 'Ð', text='ð', uppertext='Ð'), + Key('Ntilde', 'Ñ', text='ñ', uppertext='Ñ'), + Key('Ograve', 'Ò', text='ò', uppertext='Ò'), + Key('Oacute', 'Ó', text='ó', uppertext='Ó'), + Key('Ocircumflex', 'Ô', text='ô', uppertext='Ô'), + Key('Otilde', 'Õ', text='õ', uppertext='Õ'), + Key('Odiaeresis', 'Ö', text='ö', uppertext='Ö'), + Key('multiply', '×', text='×', uppertext='×'), + Key('Ooblique', 'Ø', text='ø', uppertext='Ø'), + Key('Ugrave', 'Ù', text='ù', uppertext='Ù'), + Key('Uacute', 'Ú', text='ú', uppertext='Ú'), + Key('Ucircumflex', 'Û', text='û', uppertext='Û'), + Key('Udiaeresis', 'Ü', text='ü', uppertext='Ü'), + Key('Yacute', 'Ý', text='ý', uppertext='Ý'), + Key('THORN', 'Þ', text='þ', uppertext='Þ'), + Key('ssharp', 'ß', text='ß', uppertext='ß'), + Key('division', '÷', text='÷', uppertext='÷'), + Key('ydiaeresis', 'Ÿ', text='ÿ', uppertext='Ÿ'), ### International input method support (X keycode - 0xEE00, the ### definition follows Qt/Embedded 2.3.7) Only interesting if diff --git a/tests/unit/keyinput/test_keyutils.py b/tests/unit/keyinput/test_keyutils.py index 23354935c..b714cf77b 100644 --- a/tests/unit/keyinput/test_keyutils.py +++ b/tests/unit/keyinput/test_keyutils.py @@ -35,6 +35,14 @@ def qt_key(request): return key +@pytest.mark.parametrize('upper', [False, True]) +def test_key_text(qt_key, upper): + modifiers = Qt.ShiftModifier if upper else Qt.KeyboardModifiers() + info = keyutils.KeyInfo(qt_key.member, modifiers=modifiers) + expected = qt_key.uppertext if upper else qt_key.text + assert info.text() == expected + + class TestKeyToString: def test_to_string(self, qt_key):