def test_string_to_keysym(self): self.assertEqual(string_to_keysym(" "), XK_space) self.assertEqual(string_to_keysym(u"é"), XK_eacute) self.assertEqual(string_to_keysym(u"\N{LOGICAL OR}"), XK_logicalor) self.assertEqual(string_to_keysym("\x00"), NoSymbol) for keysym in _keysyms.values(): if is_unicode_key(keysym): # For Unicode characters for which we have a keysym, that # keysym should correspond directly to the character. char = unichr(keysym & 0x00ffffff) self.assertEqual(string_to_keysym(char), keysym)
def test_case_conversion(self): def case_pair(keysym): return (lower(keysym), upper(keysym)) self.assertEqual(case_pair(NoSymbol), (NoSymbol, NoSymbol)) self.assertEqual(case_pair(XK_a), (XK_a, XK_A)) self.assertEqual(case_pair(XK_A), (XK_a, XK_A)) self.assertEqual(case_pair(XK_1), (XK_1, XK_1)) self.assertEqual(case_pair(XK_function), (XK_function, XK_function)) for keysym in _keysyms.values(): l, u = case_pair(keysym) self.assertTrue(keysym_to_string(u)) self.assertTrue(keysym_to_string(l)) self.assertTrue(keysym_to_string(keysym) == keysym_to_string(u) or keysym_to_string(keysym) == keysym_to_string(l))
def test_keysym_to_string(self): self.assertEqual(keysym_to_string(XK_space), u" ") self.assertEqual(keysym_to_string(XK_eacute), u"é") self.assertEqual(keysym_to_string(XK_logicalor), u"\N{LOGICAL OR}") self.assertEqual(keysym_to_string(XK_VoidSymbol), "") for keysym in _keysyms.values(): if is_unicode_key(keysym): # For Unicode keysyms, we can be very precise: the string # should be equal to the equivalent Unicode character. char = unichr(keysym & 0x00ffffff) self.assertEqual(keysym_to_string(keysym), char) else: # For everything else, we'll just insist that the string # be non-null. self.assertTrue(keysym_to_string(keysym))