diff --git a/freqtrade/data/dataprovider.py b/freqtrade/data/dataprovider.py index 5df2f2fd9..dbca1e035 100644 --- a/freqtrade/data/dataprovider.py +++ b/freqtrade/data/dataprovider.py @@ -72,4 +72,4 @@ class DataProvider(object): Get runmode of the bot can be "live", "dry-run", "backtest", "edgecli", "hyperopt". """ - return self._config.get('runmode') + return RunMode(self._config.get('runmode', RunMode.OTHER)) diff --git a/freqtrade/tests/optimize/test_backtesting.py b/freqtrade/tests/optimize/test_backtesting.py index 5ab44baad..beef1b16e 100644 --- a/freqtrade/tests/optimize/test_backtesting.py +++ b/freqtrade/tests/optimize/test_backtesting.py @@ -18,6 +18,7 @@ from freqtrade.data.converter import parse_ticker_dataframe from freqtrade.optimize import get_timeframe from freqtrade.optimize.backtesting import (Backtesting, setup_configuration, start) +from freqtrade.state import RunMode from freqtrade.strategy.default_strategy import DefaultStrategy from freqtrade.strategy.interface import SellType from freqtrade.tests.conftest import log_has, patch_exchange @@ -200,6 +201,8 @@ def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> assert 'timerange' not in config assert 'export' not in config + assert 'runmode' in config + assert config['runmode'] == RunMode.BACKTEST def test_setup_bt_configuration_with_arguments(mocker, default_conf, caplog) -> None: @@ -230,6 +233,8 @@ def test_setup_bt_configuration_with_arguments(mocker, default_conf, caplog) -> assert 'exchange' in config assert 'pair_whitelist' in config['exchange'] assert 'datadir' in config + assert config['runmode'] == RunMode.BACKTEST + assert log_has( 'Using data folder: {} ...'.format(config['datadir']), caplog.record_tuples diff --git a/freqtrade/tests/optimize/test_edge_cli.py b/freqtrade/tests/optimize/test_edge_cli.py index 8ffab7f11..a58620139 100644 --- a/freqtrade/tests/optimize/test_edge_cli.py +++ b/freqtrade/tests/optimize/test_edge_cli.py @@ -7,6 +7,7 @@ from typing import List from freqtrade.edge import PairInfo from freqtrade.arguments import Arguments from freqtrade.optimize.edge_cli import (EdgeCli, setup_configuration, start) +from freqtrade.state import RunMode from freqtrade.tests.conftest import log_has, patch_exchange @@ -26,6 +27,8 @@ def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> ] config = setup_configuration(get_args(args)) + assert config['runmode'] == RunMode.EDGECLI + assert 'max_open_trades' in config assert 'stake_currency' in config assert 'stake_amount' in config @@ -70,6 +73,7 @@ def test_setup_edge_configuration_with_arguments(mocker, edge_conf, caplog) -> N assert 'exchange' in config assert 'pair_whitelist' in config['exchange'] assert 'datadir' in config + assert config['runmode'] == RunMode.EDGECLI assert log_has( 'Using data folder: {} ...'.format(config['datadir']), caplog.record_tuples diff --git a/freqtrade/tests/test_configuration.py b/freqtrade/tests/test_configuration.py index f5c887089..67445238b 100644 --- a/freqtrade/tests/test_configuration.py +++ b/freqtrade/tests/test_configuration.py @@ -13,6 +13,7 @@ from freqtrade import OperationalException from freqtrade.arguments import Arguments from freqtrade.configuration import Configuration, set_loggers from freqtrade.constants import DEFAULT_DB_DRYRUN_URL, DEFAULT_DB_PROD_URL +from freqtrade.state import RunMode from freqtrade.tests.conftest import log_has @@ -77,6 +78,8 @@ def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> assert validated_conf['max_open_trades'] > 999999999 assert validated_conf['max_open_trades'] == float('inf') assert log_has('Validating configuration ...', caplog.record_tuples) + assert "runmode" in validated_conf + assert validated_conf['runmode'] == RunMode.DRY_RUN def test_load_config_file_exception(mocker) -> None: @@ -177,6 +180,8 @@ def test_load_config_with_params(default_conf, mocker) -> None: configuration = Configuration(args) validated_conf = configuration.load_config() assert validated_conf.get('db_url') == DEFAULT_DB_PROD_URL + assert "runmode" in validated_conf + assert validated_conf['runmode'] == RunMode.LIVE # Test args provided db_url dry_run conf = default_conf.copy() @@ -365,8 +370,9 @@ def test_setup_configuration_with_stratlist(mocker, default_conf, caplog) -> Non args = Arguments(arglist, '').get_parsed_arg() - configuration = Configuration(args) + configuration = Configuration(args, RunMode.BACKTEST) config = configuration.get_config() + assert config['runmode'] == RunMode.BACKTEST assert 'max_open_trades' in config assert 'stake_currency' in config assert 'stake_amount' in config @@ -411,7 +417,7 @@ def test_hyperopt_with_arguments(mocker, default_conf, caplog) -> None: ] args = Arguments(arglist, '').get_parsed_arg() - configuration = Configuration(args) + configuration = Configuration(args, RunMode.HYPEROPT) config = configuration.get_config() assert 'epochs' in config @@ -422,6 +428,8 @@ def test_hyperopt_with_arguments(mocker, default_conf, caplog) -> None: assert 'spaces' in config assert config['spaces'] == ['all'] assert log_has('Parameter -s/--spaces detected: [\'all\']', caplog.record_tuples) + assert "runmode" in config + assert config['runmode'] == RunMode.HYPEROPT def test_check_exchange(default_conf, caplog) -> None: