summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/config.py
diff options
context:
space:
mode:
authorterryjreedy <tjreedy@udel.edu>2017-07-20 05:23:00 (GMT)
committerGitHub <noreply@github.com>2017-07-20 05:23:00 (GMT)
commit65c24c846797b93d7adb72fc400f95a570f43fa9 (patch)
tree6f7127f94ce81ebe64d02ac40fe9b7828381d2df /Lib/idlelib/config.py
parentae4dca7701ca77a37aa8c956450ff8e21fe6883e (diff)
downloadcpython-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.py22
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.