Add tests for lower-/uppercase text

This commit is contained in:
Florian Bruhin 2018-02-28 10:59:01 +01:00
parent 8c87040cb6
commit 2ca15d7667
2 changed files with 145 additions and 136 deletions

View File

@ -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

View File

@ -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):