1
0

config: fix setting CLI_TIMEOUT configvar, and add "convert_setter"s

"type_=float" behaves a bit weirdly. Was kinda broken before, still not fully "fixed" here.
With this commit, if used together with convert_setter, it at least behaves in a sane way.

```
$ ./run_electrum -o setconfig timeout 10
  1.16 | E | __main__ | error running command (without daemon)
Traceback (most recent call last):
  File "/home/user/wspace/electrum/./run_electrum", line 593, in handle_cmd
    result = fut.result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 458, in result
    return self.__get_result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "/home/user/wspace/electrum/./run_electrum", line 268, in run_offline_command
    result = await func(*args, **kwargs)
  File "/home/user/wspace/electrum/electrum/commands.py", line 194, in func_wrapper
    return await func(*args, **kwargs)
  File "/home/user/wspace/electrum/electrum/commands.py", line 408, in setconfig
    self._setconfig(key, value)
  File "/home/user/wspace/electrum/electrum/commands.py", line 398, in _setconfig
    cv.set(value)
  File "/home/user/wspace/electrum/electrum/simple_config.py", line 126, in set
    self._config_var._set_config_value(self._config, value, save=save)
  File "/home/user/wspace/electrum/electrum/simple_config.py", line 89, in _set_config_value
    raise ValueError(
ValueError: ConfigVar.set type-check failed. key='timeout'. type=<class 'float'>. value=10
```
This commit is contained in:
SomberNight
2025-06-25 17:11:52 +00:00
parent fa0921e33b
commit b590c864ee
2 changed files with 20 additions and 1 deletions

View File

@@ -161,6 +161,19 @@ class Test_SimpleConfig(ElectrumTestCase):
config.NETWORK_PROXY = None
self.assertEqual(None, config.NETWORK_PROXY)
def test_configvars_convert_setter(self):
config = SimpleConfig(self.options)
self.assertEqual(60, config.CLI_TIMEOUT)
assert isinstance(config.CLI_TIMEOUT, float)
config.CLI_TIMEOUT = 10
self.assertEqual(10, config.CLI_TIMEOUT)
assert isinstance(config.CLI_TIMEOUT, float)
config.CLI_TIMEOUT = None
self.assertEqual(60, config.CLI_TIMEOUT)
assert isinstance(config.CLI_TIMEOUT, float)
def test_configvars_is_set(self):
config = SimpleConfig(self.options)
self.assertEqual(MAX_MSG_SIZE_DEFAULT, config.NETWORK_MAX_INCOMING_MSG_SIZE)