|
30 | 30 | import sys
|
31 | 31 |
|
32 | 32 | from tkinter.font import Font
|
| 33 | +import idlelib |
33 | 34 |
|
34 | 35 | class InvalidConfigType(Exception): pass
|
35 | 36 | class InvalidConfigSet(Exception): pass
|
@@ -159,14 +160,15 @@ class IdleConf:
|
159 | 160 | for config_type in self.config_types:
|
160 | 161 | (user home dir)/.idlerc/config-{config-type}.cfg
|
161 | 162 | """
|
162 |
| - def __init__(self): |
| 163 | + def __init__(self, _utest=False): |
163 | 164 | self.config_types = ('main', 'highlight', 'keys', 'extensions')
|
164 | 165 | self.defaultCfg = {}
|
165 | 166 | self.userCfg = {}
|
166 | 167 | self.cfg = {} # TODO use to select userCfg vs defaultCfg
|
167 |
| - self.CreateConfigHandlers() |
168 |
| - self.LoadCfgFiles() |
169 | 168 |
|
| 169 | + if not _utest: |
| 170 | + self.CreateConfigHandlers() |
| 171 | + self.LoadCfgFiles() |
170 | 172 |
|
171 | 173 | def CreateConfigHandlers(self):
|
172 | 174 | "Populate default and user config parser dictionaries."
|
@@ -215,7 +217,8 @@ def GetUserCfgDir(self):
|
215 | 217 | except OSError:
|
216 | 218 | warn = ('\n Warning: unable to create user config directory\n' +
|
217 | 219 | userDir + '\n Check path and permissions.\n Exiting!\n')
|
218 |
| - print(warn, file=sys.stderr) |
| 220 | + if not idlelib.testing: |
| 221 | + print(warn, file=sys.stderr) |
219 | 222 | raise SystemExit
|
220 | 223 | # TODO continue without userDIr instead of exit
|
221 | 224 | return userDir
|
@@ -463,16 +466,7 @@ def GetExtensions(self, active_only=True,
|
463 | 466 |
|
464 | 467 | def RemoveKeyBindNames(self, extnNameList):
|
465 | 468 | "Return extnNameList with keybinding section names removed."
|
466 |
| - # TODO Easier to return filtered copy with list comp |
467 |
| - names = extnNameList |
468 |
| - kbNameIndicies = [] |
469 |
| - for name in names: |
470 |
| - if name.endswith(('_bindings', '_cfgBindings')): |
471 |
| - kbNameIndicies.append(names.index(name)) |
472 |
| - kbNameIndicies.sort(reverse=True) |
473 |
| - for index in kbNameIndicies: #delete each keybinding section name |
474 |
| - del(names[index]) |
475 |
| - return names |
| 469 | + return [n for n in extnNameList if not n.endswith(('_bindings', '_cfgBindings'))] |
476 | 470 |
|
477 | 471 | def GetExtnNameForEvent(self, virtualEvent):
|
478 | 472 | """Return the name of the extension binding virtualEvent, or None.
|
|
0 commit comments