diff --git a/freqtrade/tests/optimize/test_hyperopt.py b/freqtrade/tests/optimize/test_hyperopt.py index d816988a8..20baee99e 100644 --- a/freqtrade/tests/optimize/test_hyperopt.py +++ b/freqtrade/tests/optimize/test_hyperopt.py @@ -9,7 +9,8 @@ import pytest from freqtrade.data.converter import parse_ticker_dataframe from freqtrade.data.history import load_tickerdata_file from freqtrade.optimize.hyperopt import Hyperopt, start -from freqtrade.resolvers import StrategyResolver +from freqtrade.optimize.default_hyperopt import DefaultHyperOpts +from freqtrade.resolvers import StrategyResolver, HyperOptResolver from freqtrade.tests.conftest import log_has, patch_exchange from freqtrade.tests.optimize.test_backtesting import get_args @@ -38,6 +39,28 @@ def create_trials(mocker, hyperopt) -> None: return [{'loss': 1, 'result': 'foo', 'params': {}}] +def test_hyperoptresolver(mocker, default_conf, caplog) -> None: + + mocker.patch( + 'freqtrade.configuration.Configuration._load_config_file', + lambda *args, **kwargs: default_conf + ) + hyperopts = DefaultHyperOpts + delattr(hyperopts, 'populate_buy_trend') + delattr(hyperopts, 'populate_sell_trend') + mocker.patch( + 'freqtrade.resolvers.hyperopt_resolver.HyperOptResolver._load_hyperopt', + MagicMock(return_value=hyperopts) + ) + x = HyperOptResolver(default_conf, ).hyperopt + assert not hasattr(x, 'populate_buy_trend') + assert not hasattr(x, 'populate_sell_trend') + assert log_has("Custom Hyperopt does not provide populate_sell_trend. " + "Using populate_sell_trend from DefaultStrategy.", caplog.record_tuples) + assert log_has("Custom Hyperopt does not provide populate_buy_trend. " + "Using populate_buy_trend from DefaultStrategy.", caplog.record_tuples) + + def test_start(mocker, default_conf, caplog) -> None: start_mock = MagicMock() mocker.patch(