def test_create_new_key_set_and_save_new_key_set(self): eq = self.assertEqual d = self.page # Use default as previously active keyset. d.keyset_source.set(True) d.builtin_name.set('IDLE Classic Windows') first_new = 'my new custom key set' second_new = 'my second custom keyset' # No changes, so keysets are an exact copy. self.assertNotIn(first_new, idleConf.userCfg) d.create_new_key_set(first_new) eq(idleConf.GetSectionList('user', 'keys'), [first_new]) eq(idleConf.GetKeySet('IDLE Classic Windows'), idleConf.GetKeySet(first_new)) eq(d.custom_name.get(), first_new) self.assertFalse(d.keyset_source.get()) # Use custom set. eq(d.set_keys_type.called, 1) # Test that changed keybindings are in new keyset. changes.add_option('keys', first_new, 'copy', '<Key-F11>') self.assertNotIn(second_new, idleConf.userCfg) d.create_new_key_set(second_new) eq(idleConf.GetSectionList('user', 'keys'), [first_new, second_new]) self.assertNotEqual(idleConf.GetKeySet(first_new), idleConf.GetKeySet(second_new)) # Check that difference in keysets was in option `copy` from `changes`. idleConf.SetOption('keys', first_new, 'copy', '<Key-F11>') eq(idleConf.GetKeySet(first_new), idleConf.GetKeySet(second_new))
def test_create_new_and_save_new(self): eq = self.assertEqual d = self.page # Use default as previously active theme. d.theme_source.set(True) d.builtin_name.set('IDLE Classic') first_new = 'my new custom theme' second_new = 'my second custom theme' # No changes, so themes are an exact copy. self.assertNotIn(first_new, idleConf.userCfg) d.create_new(first_new) eq(idleConf.GetSectionList('user', 'highlight'), [first_new]) eq(idleConf.GetThemeDict('default', 'IDLE Classic'), idleConf.GetThemeDict('user', first_new)) eq(d.custom_name.get(), first_new) self.assertFalse(d.theme_source.get()) # Use custom set. eq(d.set_theme_type.called, 1) # Test that changed targets are in new theme. changes.add_option('highlight', first_new, 'hit-background', 'yellow') self.assertNotIn(second_new, idleConf.userCfg) d.create_new(second_new) eq(idleConf.GetSectionList('user', 'highlight'), [first_new, second_new]) self.assertNotEqual(idleConf.GetThemeDict('user', first_new), idleConf.GetThemeDict('user', second_new)) # Check that difference in themes was in `hit-background` from `changes`. idleConf.SetOption('highlight', first_new, 'hit-background', 'yellow') eq(idleConf.GetThemeDict('user', first_new), idleConf.GetThemeDict('user', second_new))
def test_paint_theme_sample(self): eq = self.assertEqual page = self.page del page.paint_theme_sample # Delete masking mock. hs_tag = page.highlight_sample.tag_cget gh = idleConf.GetHighlight # Create custom theme based on IDLE Dark. page.theme_source.set(True) page.builtin_name.set('IDLE Dark') theme = 'IDLE Test' page.create_new(theme) page.set_color_sample.called = 0 # Base theme with nothing in `changes`. page.paint_theme_sample() new_console = { 'foreground': 'blue', 'background': 'yellow', } for key, value in new_console.items(): self.assertNotEqual(hs_tag('console', key), value) eq(page.set_color_sample.called, 1) # Apply changes. for key, value in new_console.items(): changes.add_option('highlight', theme, 'console-' + key, value) page.paint_theme_sample() for key, value in new_console.items(): eq(hs_tag('console', key), value) eq(page.set_color_sample.called, 2) page.paint_theme_sample = Func()
def test_load_keys_list(self): eq = self.assertEqual d = self.page gks = idleConf.GetKeySet = Func() del d.load_keys_list b = d.bindingslist b.delete(0, 'end') b.insert(0, '<<find>>') b.insert(1, '<<help>>') gks.result = { '<<copy>>': ['<Control-Key-c>', '<Control-Key-C>'], '<<force-open-completions>>': ['<Control-Key-space>'], '<<spam>>': ['<Key-F11>'] } changes.add_option('keys', 'my keys', 'spam', '<Shift-Key-a>') expected = ('copy - <Control-Key-c> <Control-Key-C>', 'force-open-completions - <Control-Key-space>', 'spam - <Shift-Key-a>') # No current selection. d.load_keys_list('my keys') eq(b.get(0, 'end'), expected) eq(b.get('anchor'), '') eq(b.curselection(), ()) # Check selection. b.selection_set(1) b.selection_anchor(1) d.load_keys_list('my keys') eq(b.get(0, 'end'), expected) eq(b.get('anchor'), 'force-open-completions - <Control-Key-space>') eq(b.curselection(), (1, )) # Change selection. b.selection_set(2) b.selection_anchor(2) d.load_keys_list('my keys') eq(b.get(0, 'end'), expected) eq(b.get('anchor'), 'spam - <Shift-Key-a>') eq(b.curselection(), (2, )) d.load_keys_list = Func() del idleConf.GetKeySet
def test_load_keys_list(self): eq = self.assertEqual d = self.page gks = idleConf.GetKeySet = Func() del d.load_keys_list b = d.bindingslist b.delete(0, 'end') b.insert(0, '<<find>>') b.insert(1, '<<help>>') gks.result = {'<<copy>>': ['<Control-Key-c>', '<Control-Key-C>'], '<<force-open-completions>>': ['<Control-Key-space>'], '<<spam>>': ['<Key-F11>']} changes.add_option('keys', 'my keys', 'spam', '<Shift-Key-a>') expected = ('copy - <Control-Key-c> <Control-Key-C>', 'force-open-completions - <Control-Key-space>', 'spam - <Shift-Key-a>') # No current selection. d.load_keys_list('my keys') eq(b.get(0, 'end'), expected) eq(b.get('anchor'), '') eq(b.curselection(), ()) # Check selection. b.selection_set(1) b.selection_anchor(1) d.load_keys_list('my keys') eq(b.get(0, 'end'), expected) eq(b.get('anchor'), 'force-open-completions - <Control-Key-space>') eq(b.curselection(), (1, )) # Change selection. b.selection_set(2) b.selection_anchor(2) d.load_keys_list('my keys') eq(b.get(0, 'end'), expected) eq(b.get('anchor'), 'spam - <Shift-Key-a>') eq(b.curselection(), (2, )) d.load_keys_list = Func() del idleConf.GetKeySet
def test_paint_theme_sample(self): eq = self.assertEqual d = self.page del d.paint_theme_sample hs_tag = d.highlight_sample.tag_cget gh = idleConf.GetHighlight fg = 'foreground' bg = 'background' # Create custom theme based on IDLE Dark. d.theme_source.set(True) d.builtin_name.set('IDLE Dark') theme = 'IDLE Test' d.create_new(theme) d.set_color_sample.called = 0 # Base theme with nothing in `changes`. d.paint_theme_sample() eq(hs_tag('break', fg), gh(theme, 'break', fgBg='fg')) eq(hs_tag('cursor', bg), gh(theme, 'normal', fgBg='bg')) self.assertNotEqual(hs_tag('console', fg), 'blue') self.assertNotEqual(hs_tag('console', bg), 'yellow') eq(d.set_color_sample.called, 1) # Apply changes. changes.add_option('highlight', theme, 'console-foreground', 'blue') changes.add_option('highlight', theme, 'console-background', 'yellow') d.paint_theme_sample() eq(hs_tag('break', fg), gh(theme, 'break', fgBg='fg')) eq(hs_tag('cursor', bg), gh(theme, 'normal', fgBg='bg')) eq(hs_tag('console', fg), 'blue') eq(hs_tag('console', bg), 'yellow') eq(d.set_color_sample.called, 2) d.paint_theme_sample = Func()