diff options
author | terryjreedy <tjreedy@udel.edu> | 2017-07-20 05:23:00 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-20 05:23:00 (GMT) |
commit | 65c24c846797b93d7adb72fc400f95a570f43fa9 (patch) | |
tree | 6f7127f94ce81ebe64d02ac40fe9b7828381d2df /Lib/idlelib/config.py | |
parent | ae4dca7701ca77a37aa8c956450ff8e21fe6883e (diff) | |
download | cpython-65c24c846797b93d7adb72fc400f95a570f43fa9.zip cpython-65c24c846797b93d7adb72fc400f95a570f43fa9.tar.gz cpython-65c24c846797b93d7adb72fc400f95a570f43fa9.tar.bz2 |
[3.6] bpo-30917: IDLE: Add config.IdleConf unittests (GH-2691) (#2753)
Patch by Louie Lu.
(cherry picked from commit f776eb0)
(includes diffs of ed014f7 and 9f9192a)
* fix config reset from pr 2754
* Fix test_get_font (from pr 2769)
Diffstat (limited to 'Lib/idlelib/config.py')
-rw-r--r-- | Lib/idlelib/config.py | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py index 4cf4427..63d9a44 100644 --- a/Lib/idlelib/config.py +++ b/Lib/idlelib/config.py @@ -30,6 +30,7 @@ import os import sys from tkinter.font import Font +import idlelib class InvalidConfigType(Exception): pass class InvalidConfigSet(Exception): pass @@ -159,14 +160,15 @@ class IdleConf: for config_type in self.config_types: (user home dir)/.idlerc/config-{config-type}.cfg """ - def __init__(self): + def __init__(self, _utest=False): self.config_types = ('main', 'highlight', 'keys', 'extensions') self.defaultCfg = {} self.userCfg = {} self.cfg = {} # TODO use to select userCfg vs defaultCfg - self.CreateConfigHandlers() - self.LoadCfgFiles() + if not _utest: + self.CreateConfigHandlers() + self.LoadCfgFiles() def CreateConfigHandlers(self): "Populate default and user config parser dictionaries." @@ -215,7 +217,8 @@ class IdleConf: except OSError: warn = ('\n Warning: unable to create user config directory\n' + userDir + '\n Check path and permissions.\n Exiting!\n') - print(warn, file=sys.stderr) + if not idlelib.testing: + print(warn, file=sys.stderr) raise SystemExit # TODO continue without userDIr instead of exit return userDir @@ -463,16 +466,7 @@ class IdleConf: def RemoveKeyBindNames(self, extnNameList): "Return extnNameList with keybinding section names removed." - # TODO Easier to return filtered copy with list comp - names = extnNameList - kbNameIndicies = [] - for name in names: - if name.endswith(('_bindings', '_cfgBindings')): - kbNameIndicies.append(names.index(name)) - kbNameIndicies.sort(reverse=True) - for index in kbNameIndicies: #delete each keybinding section name - del(names[index]) - return names + return [n for n in extnNameList if not n.endswith(('_bindings', '_cfgBindings'))] def GetExtnNameForEvent(self, virtualEvent): """Return the name of the extension binding virtualEvent, or None. |