def test32_modifier_and_chord(self): self.map.modifiers = {'F': ('SHIFT', )} self.map.chords = {pretty_key(('X', 'A')): pretty_key(('CTRL', 'B'))} self.assertEqual((('SHIFT', 'CTRL'), 'B'), self.map(['F', 'X', 'A'], 2)) self.assertEqual((('SHIFT', 'CTRL'), 'B'), self.map(['X', 'F', 'A'], 2))
def test2_parse_layers_double_modifiers(self): key_map = parse_layers(layers={('x', 'y'): { 'a': 'q' }}, symbols={}, key_names=self.key_names) self.assertEqual({pretty_key((('x', 'y'), 'a')): pretty_key('q')}, key_map)
def test4_ignore_empty_definitions(self): key_map = parse_layers(layers={'x': { 'a': u'q', 'b': u'', }}, symbols={}, key_names=self.key_names) self.assertEqual({pretty_key(('x', 'a')): pretty_key('q')}, key_map)
def test2_parse_layers_modified_key(self): key_map = parse_layers(layers={'x': { 'a': ('shift', 'q') }}, symbols={}, key_names=self.key_names) self.assertEqual({pretty_key(('x', 'a')): pretty_key(('shift', 'q'))}, key_map)
def setUp(self): self.kbd = Keyboard() # NOTE: Modifiers is case sensitive when testing. self.key_map = KeyMap(modifiers={'A': ('SHIFT',)}, chords={pretty_key(('x', 'b')): pretty_key('c')}) self.parser = EventParser(key_map=self.key_map, kbd=self.kbd, on_off_key=None, passthrough_keys=[])
def test22_empty_layer_is_used_for_key_rebinding(self): key_map = parse_layers(layers={'': { 'a': 'q', 'b': 'r' }}, symbols={}, key_names=self.key_names) self.assertEqual( { pretty_key('a'): pretty_key('q'), pretty_key('b'): pretty_key('r') }, key_map)
def test21_parse_layers(self): key_map = parse_layers(layers={'x': { 'a': 'q', 'b': 'r' }}, symbols={}, key_names=self.key_names) self.assertEqual( { pretty_key(('x', 'a')): pretty_key('q'), pretty_key(('x', 'b')): pretty_key('r') }, key_map)
def test3_extended_syntax(self): key_map = parse_layers( layers={'x': { 'a': u'ctrl+shift+q', 'b': u'ctrl+r', }}, symbols={}, key_names=self.key_names) self.assertEqual( { pretty_key(('x', 'a')): pretty_key((('ctrl', 'shift'), 'q')), pretty_key(('x', 'b')): pretty_key(('ctrl', 'r')) }, key_map)
def test2_parse_layers_map_to_symbol(self): key_map = parse_layers(layers={'x': { 'a': ';', 'b': ':', }}, symbols={ ';': 'semicolon', ':': ('shift', 'semicolon'), }, key_names=self.key_names) self.assertEqual( { pretty_key(('x', 'a')): pretty_key('semicolon'), pretty_key(('x', 'b')): pretty_key(('shift', 'semicolon')) }, key_map)
def test32_unmapped_chord(self): self.map.chords = {pretty_key(('X', 'A')): None} self.assertEqual((), self.map(['X', 'A'], 1))
def test2_chords_are_independent_of_modifier_order(self): self.map.chords = {pretty_key((['X', 'Y', 'Z'], 'A')): pretty_key('B')} self.assertEqual(((), 'B'), self.map(['X', 'Y', 'Z', 'A'], 3)) self.assertEqual(((), 'B'), self.map(['Y', 'X', 'Z', 'A'], 3)) self.assertEqual(((), 'B'), self.map(['Z', 'X', 'Y', 'A'], 3))
def test12_mapped_chord(self): self.map.chords = {pretty_key(('X', 'A')): pretty_key('B')} self.assertEqual(((), 'B'), self.map(['X', 'A'], 1))