From 943d080f5e766a5b792a5a767e1ed469b2278f54 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 8 Mar 2022 07:08:10 +0100 Subject: [PATCH] Add test for order-types migration --- freqtrade/configuration/config_validation.py | 7 +--- tests/test_configuration.py | 34 ++++++++++++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/freqtrade/configuration/config_validation.py b/freqtrade/configuration/config_validation.py index c7f44c643..48a460ccb 100644 --- a/freqtrade/configuration/config_validation.py +++ b/freqtrade/configuration/config_validation.py @@ -244,7 +244,7 @@ def _validate_order_types(conf: Dict[str, Any]) -> None: else: logger.warning( "DEPRECATED: Using 'buy' and 'sell' for order_types is deprecated." - "Please migrate your time_in_force settings to use 'entry' and 'exit' wording." + "Please migrate your order_types settings to use 'entry' and 'exit' wording." ) for o, n in [ ('buy', 'entry'), @@ -255,8 +255,3 @@ def _validate_order_types(conf: Dict[str, Any]) -> None: ]: process_deprecated_setting(conf, 'order_types', o, 'order_types', n) - # order_types['entry'] = order_types.pop('buy') - # order_types['exit'] = order_types.pop('sell') - # order_types['emergencyexit'] = order_types.pop('emergencysell') - # order_types['forceexit'] = order_types.pop('forceexit') - # order_types['forceentry'] = order_types.pop('forceentry') diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 31da1f143..786fdbb73 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -963,6 +963,40 @@ def test_validate_time_in_force(default_conf, caplog) -> None: validate_config_consistency(conf) +def test_validate_order_types(default_conf, caplog) -> None: + conf = deepcopy(default_conf) + conf['order_types'] = { + 'buy': 'limit', + 'sell': 'market', + 'forcesell': 'market', + 'forcebuy': 'limit', + 'stoploss': 'market', + 'stoploss_on_exchange': False, + } + validate_config_consistency(conf) + assert log_has_re(r"DEPRECATED: Using 'buy' and 'sell' for order_types is.*", caplog) + assert conf['order_types']['entry'] == 'limit' + assert conf['order_types']['exit'] == 'market' + assert conf['order_types']['forceentry'] == 'limit' + assert 'buy' not in conf['order_types'] + assert 'sell' not in conf['order_types'] + assert 'forcebuy' not in conf['order_types'] + assert 'forcesell' not in conf['order_types'] + + conf = deepcopy(default_conf) + conf['order_types'] = { + 'buy': 'limit', + 'sell': 'market', + 'forcesell': 'market', + 'forcebuy': 'limit', + 'stoploss': 'market', + 'stoploss_on_exchange': False, + } + conf['trading_mode'] = 'futures' + with pytest.raises(OperationalException, + match=r"Please migrate your order_types settings to use the new wording\."): + validate_config_consistency(conf) + def test_load_config_test_comments() -> None: """ Load config with comments