|
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