Skip to content

bpo-31480: IDLE - fix tests to pass with zzdummy extension disabled. #3590

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Sep 14, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/idlelib/config-extensions.def
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ bell= True
# A fake extension for testing and example purposes. When enabled and
# invoked, inserts or deletes z-text at beginning of every line.
[ZzDummy]
enable= True
enable= False
enable_shell = False
enable_editor = True
z-text= Z
Expand Down
82 changes: 38 additions & 44 deletions Lib/idlelib/idle_test/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
usermain = testcfg['main'] = config.IdleUserConfParser('')
userhigh = testcfg['highlight'] = config.IdleUserConfParser('')
userkeys = testcfg['keys'] = config.IdleUserConfParser('')
userextn = testcfg['extensions'] = config.IdleUserConfParser('')

def setUpModule():
idleConf.userCfg = testcfg
Expand Down Expand Up @@ -430,29 +431,22 @@ def test_default_keys(self):
sys.platform = current_platform

def test_get_extensions(self):
conf = self.mock_config()

# Add disable extensions
conf.SetOption('extensions', 'DISABLE', 'enable', 'False')

userextn.read_string('''
[ZzDummy]
enable = True
[DISABLE]
enable = False
''')
eq = self.assertEqual
eq(conf.GetExtensions(),
['ZzDummy'])
eq(conf.GetExtensions(active_only=False),
['ZzDummy', 'DISABLE'])
eq(conf.GetExtensions(editor_only=True),
['ZzDummy'])
eq(conf.GetExtensions(shell_only=True),
[])
eq(conf.GetExtensions(active_only=False, editor_only=True),
['ZzDummy', 'DISABLE'])

# Add user extensions
conf.SetOption('extensions', 'Foobar', 'enable', 'True')
eq(conf.GetExtensions(),
['ZzDummy', 'Foobar']) # User extensions didn't sort
eq(conf.GetExtensions(active_only=False),
['ZzDummy', 'DISABLE', 'Foobar'])
iGE = idleConf.GetExtensions
eq(iGE(shell_only=True), [])
eq(iGE(), ['ZzDummy'])
eq(iGE(editor_only=True), ['ZzDummy'])
eq(iGE(active_only=False), ['ZzDummy', 'DISABLE'])
eq(iGE(active_only=False, editor_only=True), ['ZzDummy', 'DISABLE'])
userextn.remove_section('ZzDummy')
userextn.remove_section('DISABLE')


def test_remove_key_bind_names(self):
conf = self.mock_config()
Expand All @@ -462,39 +456,39 @@ def test_remove_key_bind_names(self):
['AutoComplete', 'CodeContext', 'FormatParagraph', 'ParenMatch','ZzDummy'])

def test_get_extn_name_for_event(self):
conf = self.mock_config()

userextn.read_string('''
[ZzDummy]
enable = True
''')
eq = self.assertEqual
eq(conf.GetExtnNameForEvent('z-in'), 'ZzDummy')
eq(conf.GetExtnNameForEvent('z-out'), None)
eq(idleConf.GetExtnNameForEvent('z-in'), 'ZzDummy')
eq(idleConf.GetExtnNameForEvent('z-out'), None)
userextn.remove_section('ZzDummy')

def test_get_extension_keys(self):
conf = self.mock_config()

eq = self.assertEqual
eq(conf.GetExtensionKeys('ZzDummy'),
userextn.read_string('''
[ZzDummy]
enable = True
''')
self.assertEqual(idleConf.GetExtensionKeys('ZzDummy'),
{'<<z-in>>': ['<Control-Shift-KeyRelease-Insert>']})
userextn.remove_section('ZzDummy')
# need option key test
## key = ['<Option-Key-2>'] if sys.platform == 'darwin' else ['<Alt-Key-2>']
## eq(conf.GetExtensionKeys('ZoomHeight'), {'<<zoom-height>>': key})

def test_get_extension_bindings(self):
conf = self.mock_config()

self.assertEqual(conf.GetExtensionBindings('NotExists'), {})

#key = ['<Option-Key-2>'] if sys.platform == 'darwin' else ['<Alt-Key-2>']
userextn.read_string('''
[ZzDummy]
enable = True
''')
eq = self.assertEqual
iGEB = idleConf.GetExtensionBindings
eq(iGEB('NotExists'), {})
expect = {'<<z-in>>': ['<Control-Shift-KeyRelease-Insert>'],
'<<z-out>>': ['<Control-Shift-KeyRelease-Delete>']}
self.assertEqual(
conf.GetExtensionBindings('ZzDummy'), expect)

# Add non-configuarable bindings
conf.defaultCfg['extensions'].add_section('Foobar')
conf.defaultCfg['extensions'].add_section('Foobar_bindings')
conf.defaultCfg['extensions'].set('Foobar', 'enable', 'True')
conf.defaultCfg['extensions'].set('Foobar_bindings', 'foobar', '<Key-F>')
self.assertEqual(conf.GetExtensionBindings('Foobar'), {'<<foobar>>': ['<Key-F>']})
eq(iGEB('ZzDummy'), expect)
userextn.remove_section('ZzDummy')

def test_get_keybinding(self):
conf = self.mock_config()
Expand Down
1 change: 1 addition & 0 deletions Lib/idlelib/idle_test/test_configdialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,7 @@ def test_custom_name(self):
self.assertEqual(d.load_keys_list.called, 1)

def test_keybinding(self):
idleConf.SetOption('extensions', 'ZzDummy', 'enable', 'True')
d = self.page
d.custom_name.set('my custom keys')
d.bindingslist.delete(0, 'end')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
IDLE - make tests pass with zzdummy extension disabled by default.