Rename auto_cycle to auto_connect in config
User config is updated if appropriate. Add tests behaviour is as expected. Just the one rename-it reference to auto_cycle remains.
This commit is contained in:
@@ -252,7 +252,7 @@ class Network(util.DaemonThread):
|
||||
return host, port, protocol, self.proxy, self.auto_connect()
|
||||
|
||||
def auto_connect(self):
|
||||
return self.config.get('auto_cycle', False)
|
||||
return self.config.get('auto_connect', False)
|
||||
|
||||
def get_interfaces(self):
|
||||
return self.interfaces.keys()
|
||||
|
||||
@@ -209,7 +209,7 @@ class NetworkProxy(util.DaemonThread):
|
||||
def set_parameters(self, host, port, protocol, proxy, auto_connect):
|
||||
proxy_str = serialize_proxy(proxy)
|
||||
server_str = serialize_server(host, port, protocol)
|
||||
self.config.set_key('auto_cycle', auto_connect, True)
|
||||
self.config.set_key('auto_connect', auto_connect, True)
|
||||
self.config.set_key("proxy", proxy_str, True)
|
||||
self.config.set_key("server", server_str, True)
|
||||
# abort if changes were not allowed by config
|
||||
|
||||
@@ -64,6 +64,8 @@ class SimpleConfig(object):
|
||||
self.user_config = {} # for self.get in electrum_path()
|
||||
self.path = self.electrum_path()
|
||||
self.user_config = read_user_config_function(self.path)
|
||||
# Upgrade obsolete keys
|
||||
self.fixup_keys({'auto_cycle': 'auto_connect'})
|
||||
# Make a singleton instance of 'self'
|
||||
set_config(self)
|
||||
|
||||
@@ -81,6 +83,23 @@ class SimpleConfig(object):
|
||||
print_error("electrum directory", path)
|
||||
return path
|
||||
|
||||
def fixup_config_keys(self, config, keypairs):
|
||||
updated = False
|
||||
for old_key, new_key in keypairs.iteritems():
|
||||
if old_key in config:
|
||||
if not new_key in config:
|
||||
config[new_key] = config[old_key]
|
||||
del config[old_key]
|
||||
updated = True
|
||||
return updated
|
||||
|
||||
def fixup_keys(self, keypairs):
|
||||
'''Migrate old key names to new ones'''
|
||||
self.fixup_config_keys(self.cmdline_options, keypairs)
|
||||
self.fixup_config_keys(self.system_config, keypairs)
|
||||
if self.fixup_config_keys(self.user_config, keypairs):
|
||||
self.save_user_config()
|
||||
|
||||
def set_key(self, key, value, save = True):
|
||||
if not self.is_modifiable(key):
|
||||
print_stderr("Warning: not changing config key '%s' set on the command line" % key)
|
||||
|
||||
@@ -35,6 +35,25 @@ class Test_SimpleConfig(unittest.TestCase):
|
||||
# Restore the "real" stdout
|
||||
sys.stdout = self._saved_stdout
|
||||
|
||||
def test_simple_config_key_rename(self):
|
||||
"""auto_cycle was renamed auto_connect"""
|
||||
fake_read_system = lambda : {}
|
||||
fake_read_user = lambda _: {"auto_cycle": True}
|
||||
read_user_dir = lambda : self.user_dir
|
||||
config = SimpleConfig(options=self.options,
|
||||
read_system_config_function=fake_read_system,
|
||||
read_user_config_function=fake_read_user,
|
||||
read_user_dir_function=read_user_dir)
|
||||
self.assertEqual(config.get("auto_connect"), True)
|
||||
self.assertEqual(config.get("auto_cycle"), None)
|
||||
fake_read_user = lambda _: {"auto_connect": False, "auto_cycle": True}
|
||||
config = SimpleConfig(options=self.options,
|
||||
read_system_config_function=fake_read_system,
|
||||
read_user_config_function=fake_read_user,
|
||||
read_user_dir_function=read_user_dir)
|
||||
self.assertEqual(config.get("auto_connect"), False)
|
||||
self.assertEqual(config.get("auto_cycle"), None)
|
||||
|
||||
def test_simple_config_command_line_overrides_everything(self):
|
||||
"""Options passed by command line override all other configuration
|
||||
sources"""
|
||||
|
||||
Reference in New Issue
Block a user