Graciously fail if strategy has freqAI code, but freqAI is not enabled.

This commit is contained in:
Matthias 2022-08-13 09:53:18 +02:00
parent c190d57f1a
commit b682fc446e
2 changed files with 14 additions and 0 deletions

View File

@ -152,6 +152,13 @@ class IStrategy(ABC, HyperStrategyMixin):
self.freqai = FreqaiModelResolver.load_freqaimodel(self.config)
self.freqai_info = self.config["freqai"]
else:
# Gracious failures if freqAI is disabled but "start" is called.
class DummyClass():
def start(self, *args, **kwargs):
raise OperationalException(
'freqAI is not enabled. Please enable it in your config to use this strategy.')
self.freqai = DummyClass() # type: ignore
def ft_bot_start(self, **kwargs) -> None:
"""

View File

@ -302,6 +302,13 @@ def test_populate_any_indicators(default_conf, testdatadir) -> None:
assert len(processed['UNITTEST/BTC']) == 102 # partial candle was removed
def test_freqai_not_initialized(default_conf) -> None:
strategy = StrategyResolver.load_strategy(default_conf)
strategy.ft_bot_start()
with pytest.raises(OperationalException, match=r'freqAI is not enabled\.'):
strategy.freqai.start()
def test_advise_all_indicators_copy(mocker, default_conf, testdatadir) -> None:
strategy = StrategyResolver.load_strategy(default_conf)
aimock = mocker.patch('freqtrade.strategy.interface.IStrategy.advise_indicators')