Add test for parameter loading
This commit is contained in:
parent
dcf53ac3ff
commit
645da51b5f
@ -12,7 +12,6 @@ from math import ceil
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
import progressbar
|
import progressbar
|
||||||
import rapidjson
|
import rapidjson
|
||||||
from colorama import Fore, Style
|
from colorama import Fore, Style
|
||||||
|
@ -327,10 +327,10 @@ class HyperStrategyMixin(object):
|
|||||||
try:
|
try:
|
||||||
params = json_load(filename.open('r'))
|
params = json_load(filename.open('r'))
|
||||||
if params.get('strategy_name') != self.__class__.__name__:
|
if params.get('strategy_name') != self.__class__.__name__:
|
||||||
raise OperationalException('Invalid parameter file provided')
|
raise OperationalException('Invalid parameter file provided.')
|
||||||
return params
|
return params
|
||||||
except ValueError:
|
except ValueError:
|
||||||
logger.warning("Invalid parameter file.")
|
logger.warning("Invalid parameter file format.")
|
||||||
return {}
|
return {}
|
||||||
logger.info("Found no parameter file.")
|
logger.info("Found no parameter file.")
|
||||||
|
|
||||||
|
@ -1020,5 +1020,3 @@ def test_SKDecimal():
|
|||||||
assert space.transform([2.0]) == [200]
|
assert space.transform([2.0]) == [200]
|
||||||
assert space.transform([1.0]) == [100]
|
assert space.transform([1.0]) == [100]
|
||||||
assert space.transform([1.5, 1.6]) == [150, 160]
|
assert space.transform([1.5, 1.6]) == [150, 160]
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# pragma pylint: disable=missing-docstring, C0103
|
# pragma pylint: disable=missing-docstring, C0103
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
|
from pathlib import Path
|
||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
@ -692,3 +693,50 @@ def test_auto_hyperopt_interface(default_conf):
|
|||||||
|
|
||||||
with pytest.raises(OperationalException, match=r"Inconclusive parameter.*"):
|
with pytest.raises(OperationalException, match=r"Inconclusive parameter.*"):
|
||||||
[x for x in strategy.detect_parameters('sell')]
|
[x for x in strategy.detect_parameters('sell')]
|
||||||
|
|
||||||
|
|
||||||
|
def test_auto_hyperopt_interface_loadparams(default_conf, mocker, caplog):
|
||||||
|
default_conf.update({'strategy': 'HyperoptableStrategy'})
|
||||||
|
del default_conf['stoploss']
|
||||||
|
del default_conf['minimal_roi']
|
||||||
|
mocker.patch.object(Path, 'is_file', MagicMock(return_value=True))
|
||||||
|
mocker.patch.object(Path, 'open')
|
||||||
|
expected_result = {
|
||||||
|
"strategy_name": "HyperoptableStrategy",
|
||||||
|
"params": {
|
||||||
|
"stoploss": {
|
||||||
|
"stoploss": -0.05,
|
||||||
|
},
|
||||||
|
"roi": {
|
||||||
|
"0": 0.2,
|
||||||
|
"1200": 0.01
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mocker.patch('freqtrade.strategy.hyper.json_load', return_value=expected_result)
|
||||||
|
PairLocks.timeframe = default_conf['timeframe']
|
||||||
|
strategy = StrategyResolver.load_strategy(default_conf)
|
||||||
|
assert strategy.stoploss == -0.05
|
||||||
|
assert strategy.minimal_roi == {0: 0.2, 1200: 0.01}
|
||||||
|
|
||||||
|
expected_result = {
|
||||||
|
"strategy_name": "HyperoptableStrategy_No",
|
||||||
|
"params": {
|
||||||
|
"stoploss": {
|
||||||
|
"stoploss": -0.05,
|
||||||
|
},
|
||||||
|
"roi": {
|
||||||
|
"0": 0.2,
|
||||||
|
"1200": 0.01
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mocker.patch('freqtrade.strategy.hyper.json_load', return_value=expected_result)
|
||||||
|
with pytest.raises(OperationalException, match="Invalid parameter file provided."):
|
||||||
|
StrategyResolver.load_strategy(default_conf)
|
||||||
|
|
||||||
|
mocker.patch('freqtrade.strategy.hyper.json_load', MagicMock(side_effect=ValueError()))
|
||||||
|
|
||||||
|
StrategyResolver.load_strategy(default_conf)
|
||||||
|
assert log_has("Invalid parameter file format.", caplog)
|
||||||
|
Loading…
Reference in New Issue
Block a user