From 7a5c7e70208659e69de75b10caff828f5a17eb6f Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 21 Sep 2021 19:14:14 +0200 Subject: [PATCH] Update some tests to use StrategyV3 --- freqtrade/strategy/interface.py | 5 ++-- tests/rpc/test_rpc_apiserver.py | 3 ++- tests/strategy/test_interface.py | 16 +++++------ tests/strategy/test_strategy_loading.py | 36 ++++++++++++------------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 34cf9f749..139729910 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -563,9 +563,8 @@ class IStrategy(ABC, HyperStrategyMixin): message = "" if dataframe is None: message = "No dataframe returned (return statement missing?)." - elif 'buy' not in dataframe: - # TODO-lev: Something? - message = "Buy column not set." + elif 'enter_long' not in dataframe: + message = "enter_long/buy column not set." elif df_len != len(dataframe): message = message_template.format("length") elif df_close != dataframe["close"].iloc[-1]: diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 7c98b2df7..dc29c3027 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -1226,7 +1226,8 @@ def test_api_strategies(botclient): 'HyperoptableStrategy', 'InformativeDecoratorTest', 'StrategyTestV2', - 'TestStrategyLegacyV1' + 'StrategyTestV3', + 'TestStrategyLegacyV1', ]} diff --git a/tests/strategy/test_interface.py b/tests/strategy/test_interface.py index b5e5a9eaa..c09d5209c 100644 --- a/tests/strategy/test_interface.py +++ b/tests/strategy/test_interface.py @@ -23,11 +23,11 @@ from freqtrade.strategy.interface import SellCheckTuple from freqtrade.strategy.strategy_wrapper import strategy_safe_wrapper from tests.conftest import log_has, log_has_re -from .strats.strategy_test_v2 import StrategyTestV2 +from .strats.strategy_test_v3 import StrategyTestV3 # Avoid to reinit the same object again and again -_STRATEGY = StrategyTestV2(config={}) +_STRATEGY = StrategyTestV3(config={}) _STRATEGY.dp = DataProvider({}, None, None) @@ -224,8 +224,8 @@ def test_assert_df_raise(mocker, caplog, ohlcv_history): def test_assert_df(ohlcv_history, caplog): df_len = len(ohlcv_history) - 1 - ohlcv_history.loc[:, 'buy'] = 0 - ohlcv_history.loc[:, 'sell'] = 0 + ohlcv_history.loc[:, 'enter_long'] = 0 + ohlcv_history.loc[:, 'exit_long'] = 0 # Ensure it's running when passed correctly _STRATEGY.assert_df(ohlcv_history, len(ohlcv_history), ohlcv_history.loc[df_len, 'close'], ohlcv_history.loc[df_len, 'date']) @@ -248,8 +248,8 @@ def test_assert_df(ohlcv_history, caplog): _STRATEGY.assert_df(None, len(ohlcv_history), ohlcv_history.loc[df_len, 'close'], ohlcv_history.loc[0, 'date']) with pytest.raises(StrategyError, - match="Buy column not set"): - _STRATEGY.assert_df(ohlcv_history.drop('buy', axis=1), len(ohlcv_history), + match="enter_long/buy column not set."): + _STRATEGY.assert_df(ohlcv_history.drop('enter_long', axis=1), len(ohlcv_history), ohlcv_history.loc[df_len, 'close'], ohlcv_history.loc[0, 'date']) _STRATEGY.disable_dataframe_checks = True @@ -528,7 +528,7 @@ def test_analyze_ticker_default(ohlcv_history, mocker, caplog) -> None: advise_sell=sell_mock, ) - strategy = StrategyTestV2({}) + strategy = StrategyTestV3({}) strategy.analyze_ticker(ohlcv_history, {'pair': 'ETH/BTC'}) assert ind_mock.call_count == 1 assert buy_mock.call_count == 1 @@ -559,7 +559,7 @@ def test__analyze_ticker_internal_skip_analyze(ohlcv_history, mocker, caplog) -> advise_sell=sell_mock, ) - strategy = StrategyTestV2({}) + strategy = StrategyTestV3({}) strategy.dp = DataProvider({}, None, None) strategy.process_only_new_candles = True diff --git a/tests/strategy/test_strategy_loading.py b/tests/strategy/test_strategy_loading.py index 3e8392596..2d4cf7c35 100644 --- a/tests/strategy/test_strategy_loading.py +++ b/tests/strategy/test_strategy_loading.py @@ -74,7 +74,7 @@ def test_load_strategy_base64(result, caplog, default_conf): def test_load_strategy_invalid_directory(result, caplog, default_conf): - default_conf['strategy'] = 'StrategyTestV2' + default_conf['strategy'] = 'StrategyTestV3' extra_dir = Path.cwd() / 'some/path' with pytest.raises(OperationalException): StrategyResolver._load_strategy('StrategyTestV2', config=default_conf, @@ -99,7 +99,7 @@ def test_load_strategy_noname(default_conf): StrategyResolver.load_strategy(default_conf) -def test_strategy(result, default_conf): +def test_strategy_v2(result, default_conf): default_conf.update({'strategy': 'StrategyTestV2'}) strategy = StrategyResolver.load_strategy(default_conf) @@ -129,7 +129,7 @@ def test_strategy(result, default_conf): def test_strategy_override_minimal_roi(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'minimal_roi': { "20": 0.1, "0": 0.5 @@ -146,7 +146,7 @@ def test_strategy_override_minimal_roi(caplog, default_conf): def test_strategy_override_stoploss(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'stoploss': -0.5 }) strategy = StrategyResolver.load_strategy(default_conf) @@ -158,7 +158,7 @@ def test_strategy_override_stoploss(caplog, default_conf): def test_strategy_override_trailing_stop(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'trailing_stop': True }) strategy = StrategyResolver.load_strategy(default_conf) @@ -171,7 +171,7 @@ def test_strategy_override_trailing_stop(caplog, default_conf): def test_strategy_override_trailing_stop_positive(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'trailing_stop_positive': -0.1, 'trailing_stop_positive_offset': -0.2 @@ -191,7 +191,7 @@ def test_strategy_override_timeframe(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'timeframe': 60, 'stake_currency': 'ETH' }) @@ -207,7 +207,7 @@ def test_strategy_override_process_only_new_candles(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'process_only_new_candles': True }) strategy = StrategyResolver.load_strategy(default_conf) @@ -227,7 +227,7 @@ def test_strategy_override_order_types(caplog, default_conf): 'stoploss_on_exchange': True, } default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'order_types': order_types }) strategy = StrategyResolver.load_strategy(default_conf) @@ -241,12 +241,12 @@ def test_strategy_override_order_types(caplog, default_conf): " 'stoploss_on_exchange': True}.", caplog) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'order_types': {'buy': 'market'} }) # Raise error for invalid configuration with pytest.raises(ImportError, - match=r"Impossible to load Strategy 'StrategyTestV2'. " + match=r"Impossible to load Strategy 'StrategyTestV3'. " r"Order-types mapping is incomplete."): StrategyResolver.load_strategy(default_conf) @@ -260,7 +260,7 @@ def test_strategy_override_order_tif(caplog, default_conf): } default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'order_time_in_force': order_time_in_force }) strategy = StrategyResolver.load_strategy(default_conf) @@ -273,12 +273,12 @@ def test_strategy_override_order_tif(caplog, default_conf): " {'buy': 'fok', 'sell': 'gtc'}.", caplog) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'order_time_in_force': {'buy': 'fok'} }) # Raise error for invalid configuration with pytest.raises(ImportError, - match=r"Impossible to load Strategy 'StrategyTestV2'. " + match=r"Impossible to load Strategy 'StrategyTestV3'. " r"Order-time-in-force mapping is incomplete."): StrategyResolver.load_strategy(default_conf) @@ -286,7 +286,7 @@ def test_strategy_override_order_tif(caplog, default_conf): def test_strategy_override_use_sell_signal(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', }) strategy = StrategyResolver.load_strategy(default_conf) assert strategy.use_sell_signal @@ -296,7 +296,7 @@ def test_strategy_override_use_sell_signal(caplog, default_conf): assert default_conf['use_sell_signal'] default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'use_sell_signal': False, }) strategy = StrategyResolver.load_strategy(default_conf) @@ -309,7 +309,7 @@ def test_strategy_override_use_sell_signal(caplog, default_conf): def test_strategy_override_use_sell_profit_only(caplog, default_conf): caplog.set_level(logging.INFO) default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', }) strategy = StrategyResolver.load_strategy(default_conf) assert not strategy.sell_profit_only @@ -319,7 +319,7 @@ def test_strategy_override_use_sell_profit_only(caplog, default_conf): assert not default_conf['sell_profit_only'] default_conf.update({ - 'strategy': 'StrategyTestV2', + 'strategy': 'StrategyTestV3', 'sell_profit_only': True, }) strategy = StrategyResolver.load_strategy(default_conf)