Allow easy printing of loaded configuration

(beforechanging types and applying defaults)
This commit is contained in:
Matthias 2019-09-20 07:02:54 +02:00
parent e8657d2444
commit f0cf8d6a81
3 changed files with 25 additions and 1 deletions

View File

@ -102,7 +102,7 @@ from freqtrade.configuration import Configuration
config = Configuration.from_files(["config1.json", "config2.json"]) config = Configuration.from_files(["config1.json", "config2.json"])
# Show the config in memory # Show the config in memory
print(json.dumps(config, indent=2)) print(json.dumps(config['original_config'], indent=2))
``` ```
For Interactive environments, have an additional configuration specifying `user_data_dir` and pass this in last, so you don't have to change directories while running the bot. For Interactive environments, have an additional configuration specifying `user_data_dir` and pass this in last, so you don't have to change directories while running the bot.

View File

@ -90,6 +90,9 @@ class Configuration:
# Load all configs # Load all configs
config: Dict[str, Any] = self.load_from_files(self.args["config"]) config: Dict[str, Any] = self.load_from_files(self.args["config"])
# Keep a copy of the original configuration file
config['original_config'] = deepcopy(config)
self._process_common_options(config) self._process_common_options(config)
self._process_optimize_options(config) self._process_optimize_options(config)

View File

@ -161,6 +161,27 @@ def test_from_config(default_conf, mocker, caplog) -> None:
assert validated_conf['fiat_display_currency'] == "EUR" assert validated_conf['fiat_display_currency'] == "EUR"
assert 'internals' in validated_conf assert 'internals' in validated_conf
assert log_has('Validating configuration ...', caplog) assert log_has('Validating configuration ...', caplog)
assert isinstance(validated_conf['user_data_dir'], Path)
def test_print_config(default_conf, mocker, caplog) -> None:
conf1 = deepcopy(default_conf)
# Delete non-json elements from default_conf
del conf1['user_data_dir']
config_files = [conf1]
configsmock = MagicMock(side_effect=config_files)
mocker.patch(
'freqtrade.configuration.configuration.load_config_file',
configsmock
)
validated_conf = Configuration.from_files(['test_conf.json'])
assert isinstance(validated_conf['user_data_dir'], Path)
assert "user_data_dir" in validated_conf
assert "original_config" in validated_conf
assert isinstance(json.dumps(validated_conf['original_config']), str)
def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> None: def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> None: