From 13800701ce4612d7198e43da0ffbc8c26e57941b Mon Sep 17 00:00:00 2001 From: Gianluca Puglia Date: Sun, 6 Jan 2019 13:47:36 +0100 Subject: [PATCH] Fix custom db_url ignored if provided by conf.json --- docs/configuration.md | 2 +- freqtrade/configuration.py | 3 -- freqtrade/tests/test_configuration.py | 40 +++++++++++++++++++++++++-- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 44db019d0..a7deaa60c 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -223,7 +223,7 @@ creating trades. ```json "dry_run": true, -"db_url": "sqlite///tradesv3.dryrun.sqlite", +"db_url": "sqlite:///tradesv3.dryrun.sqlite", ``` 3. Remove your Exchange API key (change them by fake api credentials) diff --git a/freqtrade/configuration.py b/freqtrade/configuration.py index ddcf99c1d..9fd93629f 100644 --- a/freqtrade/configuration.py +++ b/freqtrade/configuration.py @@ -124,9 +124,6 @@ class Configuration(object): if self.args.db_url and self.args.db_url != constants.DEFAULT_DB_PROD_URL: config.update({'db_url': self.args.db_url}) logger.info('Parameter --db-url detected ...') - else: - # Set default here - config.update({'db_url': constants.DEFAULT_DB_PROD_URL}) if config.get('dry_run', False): logger.info('Dry run is enabled') diff --git a/freqtrade/tests/test_configuration.py b/freqtrade/tests/test_configuration.py index ac322c6fc..f5c887089 100644 --- a/freqtrade/tests/test_configuration.py +++ b/freqtrade/tests/test_configuration.py @@ -73,7 +73,6 @@ def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> args = Arguments([], '').get_parsed_arg() configuration = Configuration(args) validated_conf = configuration.load_config() - print(validated_conf) assert validated_conf['max_open_trades'] > 999999999 assert validated_conf['max_open_trades'] == float('inf') @@ -125,6 +124,43 @@ def test_load_config_with_params(default_conf, mocker) -> None: assert validated_conf.get('strategy_path') == '/some/path' assert validated_conf.get('db_url') == 'sqlite:///someurl' + # Test conf provided db_url prod + conf = default_conf.copy() + conf["dry_run"] = False + conf["db_url"] = "sqlite:///path/to/db.sqlite" + mocker.patch('freqtrade.configuration.open', mocker.mock_open( + read_data=json.dumps(conf) + )) + + arglist = [ + '--strategy', 'TestStrategy', + '--strategy-path', '/some/path' + ] + args = Arguments(arglist, '').get_parsed_arg() + + configuration = Configuration(args) + validated_conf = configuration.load_config() + assert validated_conf.get('db_url') == "sqlite:///path/to/db.sqlite" + + # Test conf provided db_url dry_run + conf = default_conf.copy() + conf["dry_run"] = True + conf["db_url"] = "sqlite:///path/to/db.sqlite" + mocker.patch('freqtrade.configuration.open', mocker.mock_open( + read_data=json.dumps(conf) + )) + + arglist = [ + '--strategy', 'TestStrategy', + '--strategy-path', '/some/path' + ] + args = Arguments(arglist, '').get_parsed_arg() + + configuration = Configuration(args) + validated_conf = configuration.load_config() + assert validated_conf.get('db_url') == "sqlite:///path/to/db.sqlite" + + # Test args provided db_url prod conf = default_conf.copy() conf["dry_run"] = False del conf["db_url"] @@ -142,7 +178,7 @@ def test_load_config_with_params(default_conf, mocker) -> None: validated_conf = configuration.load_config() assert validated_conf.get('db_url') == DEFAULT_DB_PROD_URL - # Test dry=run with ProdURL + # Test args provided db_url dry_run conf = default_conf.copy() conf["dry_run"] = True conf["db_url"] = DEFAULT_DB_PROD_URL