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

View File

@ -35,6 +35,14 @@ def qt_key(request):
return key 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: class TestKeyToString:
def test_to_string(self, qt_key): def test_to_string(self, qt_key):