Improve fixture naming
This commit is contained in:
parent
703bcc099a
commit
32d46e8a6b
@ -2282,7 +2282,7 @@ def tickers():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def result(testdatadir):
|
def dataframe_1m(testdatadir):
|
||||||
with (testdatadir / 'UNITTEST_BTC-1m.json').open('r') as data_file:
|
with (testdatadir / 'UNITTEST_BTC-1m.json').open('r') as data_file:
|
||||||
return ohlcv_to_dataframe(json.load(data_file), '1m', pair="UNITTEST/BTC",
|
return ohlcv_to_dataframe(json.load(data_file), '1m', pair="UNITTEST/BTC",
|
||||||
fill_missing=True)
|
fill_missing=True)
|
||||||
|
@ -18,8 +18,8 @@ from tests.conftest import log_has, log_has_re
|
|||||||
from tests.data.test_history import _clean_test_file
|
from tests.data.test_history import _clean_test_file
|
||||||
|
|
||||||
|
|
||||||
def test_dataframe_correct_columns(result):
|
def test_dataframe_correct_columns(dataframe_1m):
|
||||||
assert result.columns.tolist() == ['date', 'open', 'high', 'low', 'close', 'volume']
|
assert dataframe_1m.columns.tolist() == ['date', 'open', 'high', 'low', 'close', 'volume']
|
||||||
|
|
||||||
|
|
||||||
def test_ohlcv_to_dataframe(ohlcv_history_list, caplog):
|
def test_ohlcv_to_dataframe(ohlcv_history_list, caplog):
|
||||||
|
@ -21,14 +21,14 @@ def test_strategy_test_v3_structure():
|
|||||||
(True, 'short'),
|
(True, 'short'),
|
||||||
(False, 'long'),
|
(False, 'long'),
|
||||||
])
|
])
|
||||||
def test_strategy_test_v3(result, fee, is_short, side):
|
def test_strategy_test_v3(dataframe_1m, fee, is_short, side):
|
||||||
strategy = StrategyTestV3({})
|
strategy = StrategyTestV3({})
|
||||||
|
|
||||||
metadata = {'pair': 'ETH/BTC'}
|
metadata = {'pair': 'ETH/BTC'}
|
||||||
assert type(strategy.minimal_roi) is dict
|
assert type(strategy.minimal_roi) is dict
|
||||||
assert type(strategy.stoploss) is float
|
assert type(strategy.stoploss) is float
|
||||||
assert type(strategy.timeframe) is str
|
assert type(strategy.timeframe) is str
|
||||||
indicators = strategy.populate_indicators(result, metadata)
|
indicators = strategy.populate_indicators(dataframe_1m, metadata)
|
||||||
assert type(indicators) is DataFrame
|
assert type(indicators) is DataFrame
|
||||||
assert type(strategy.populate_buy_trend(indicators, metadata)) is DataFrame
|
assert type(strategy.populate_buy_trend(indicators, metadata)) is DataFrame
|
||||||
assert type(strategy.populate_sell_trend(indicators, metadata)) is DataFrame
|
assert type(strategy.populate_sell_trend(indicators, metadata)) is DataFrame
|
||||||
|
@ -53,7 +53,7 @@ def test_search_all_strategies_with_failed():
|
|||||||
assert len(strategies) == 0
|
assert len(strategies) == 0
|
||||||
|
|
||||||
|
|
||||||
def test_load_strategy(default_conf, result):
|
def test_load_strategy(default_conf, dataframe_1m):
|
||||||
default_conf.update({'strategy': 'SampleStrategy',
|
default_conf.update({'strategy': 'SampleStrategy',
|
||||||
'strategy_path': str(Path(__file__).parents[2] / 'freqtrade/templates')
|
'strategy_path': str(Path(__file__).parents[2] / 'freqtrade/templates')
|
||||||
})
|
})
|
||||||
@ -61,22 +61,22 @@ def test_load_strategy(default_conf, result):
|
|||||||
assert isinstance(strategy.__source__, str)
|
assert isinstance(strategy.__source__, str)
|
||||||
assert 'class SampleStrategy' in strategy.__source__
|
assert 'class SampleStrategy' in strategy.__source__
|
||||||
assert isinstance(strategy.__file__, str)
|
assert isinstance(strategy.__file__, str)
|
||||||
assert 'rsi' in strategy.advise_indicators(result, {'pair': 'ETH/BTC'})
|
assert 'rsi' in strategy.advise_indicators(dataframe_1m, {'pair': 'ETH/BTC'})
|
||||||
|
|
||||||
|
|
||||||
def test_load_strategy_base64(result, caplog, default_conf):
|
def test_load_strategy_base64(dataframe_1m, caplog, default_conf):
|
||||||
filepath = Path(__file__).parents[2] / 'freqtrade/templates/sample_strategy.py'
|
filepath = Path(__file__).parents[2] / 'freqtrade/templates/sample_strategy.py'
|
||||||
encoded_string = urlsafe_b64encode(filepath.read_bytes()).decode("utf-8")
|
encoded_string = urlsafe_b64encode(filepath.read_bytes()).decode("utf-8")
|
||||||
default_conf.update({'strategy': 'SampleStrategy:{}'.format(encoded_string)})
|
default_conf.update({'strategy': 'SampleStrategy:{}'.format(encoded_string)})
|
||||||
|
|
||||||
strategy = StrategyResolver.load_strategy(default_conf)
|
strategy = StrategyResolver.load_strategy(default_conf)
|
||||||
assert 'rsi' in strategy.advise_indicators(result, {'pair': 'ETH/BTC'})
|
assert 'rsi' in strategy.advise_indicators(dataframe_1m, {'pair': 'ETH/BTC'})
|
||||||
# Make sure strategy was loaded from base64 (using temp directory)!!
|
# Make sure strategy was loaded from base64 (using temp directory)!!
|
||||||
assert log_has_re(r"Using resolved strategy SampleStrategy from '"
|
assert log_has_re(r"Using resolved strategy SampleStrategy from '"
|
||||||
r".*(/|\\).*(/|\\)SampleStrategy\.py'\.\.\.", caplog)
|
r".*(/|\\).*(/|\\)SampleStrategy\.py'\.\.\.", caplog)
|
||||||
|
|
||||||
|
|
||||||
def test_load_strategy_invalid_directory(result, caplog, default_conf):
|
def test_load_strategy_invalid_directory(caplog, default_conf):
|
||||||
default_conf['strategy'] = 'StrategyTestV3'
|
default_conf['strategy'] = 'StrategyTestV3'
|
||||||
extra_dir = Path.cwd() / 'some/path'
|
extra_dir = Path.cwd() / 'some/path'
|
||||||
with pytest.raises(OperationalException):
|
with pytest.raises(OperationalException):
|
||||||
@ -104,7 +104,7 @@ def test_load_strategy_noname(default_conf):
|
|||||||
|
|
||||||
@pytest.mark.filterwarnings("ignore:deprecated")
|
@pytest.mark.filterwarnings("ignore:deprecated")
|
||||||
@pytest.mark.parametrize('strategy_name', ['StrategyTestV2'])
|
@pytest.mark.parametrize('strategy_name', ['StrategyTestV2'])
|
||||||
def test_strategy_pre_v3(result, default_conf, strategy_name):
|
def test_strategy_pre_v3(dataframe_1m, default_conf, strategy_name):
|
||||||
default_conf.update({'strategy': strategy_name})
|
default_conf.update({'strategy': strategy_name})
|
||||||
|
|
||||||
strategy = StrategyResolver.load_strategy(default_conf)
|
strategy = StrategyResolver.load_strategy(default_conf)
|
||||||
@ -118,7 +118,7 @@ def test_strategy_pre_v3(result, default_conf, strategy_name):
|
|||||||
assert strategy.timeframe == '5m'
|
assert strategy.timeframe == '5m'
|
||||||
assert default_conf['timeframe'] == '5m'
|
assert default_conf['timeframe'] == '5m'
|
||||||
|
|
||||||
df_indicators = strategy.advise_indicators(result, metadata=metadata)
|
df_indicators = strategy.advise_indicators(dataframe_1m, metadata=metadata)
|
||||||
assert 'adx' in df_indicators
|
assert 'adx' in df_indicators
|
||||||
|
|
||||||
dataframe = strategy.advise_entry(df_indicators, metadata=metadata)
|
dataframe = strategy.advise_entry(df_indicators, metadata=metadata)
|
||||||
@ -417,24 +417,24 @@ def test_call_deprecated_function(default_conf):
|
|||||||
StrategyResolver.load_strategy(default_conf)
|
StrategyResolver.load_strategy(default_conf)
|
||||||
|
|
||||||
|
|
||||||
def test_strategy_interface_versioning(result, default_conf):
|
def test_strategy_interface_versioning(dataframe_1m, default_conf):
|
||||||
default_conf.update({'strategy': 'StrategyTestV2'})
|
default_conf.update({'strategy': 'StrategyTestV2'})
|
||||||
strategy = StrategyResolver.load_strategy(default_conf)
|
strategy = StrategyResolver.load_strategy(default_conf)
|
||||||
metadata = {'pair': 'ETH/BTC'}
|
metadata = {'pair': 'ETH/BTC'}
|
||||||
|
|
||||||
assert strategy.INTERFACE_VERSION == 2
|
assert strategy.INTERFACE_VERSION == 2
|
||||||
|
|
||||||
indicator_df = strategy.advise_indicators(result, metadata=metadata)
|
indicator_df = strategy.advise_indicators(dataframe_1m, metadata=metadata)
|
||||||
assert isinstance(indicator_df, DataFrame)
|
assert isinstance(indicator_df, DataFrame)
|
||||||
assert 'adx' in indicator_df.columns
|
assert 'adx' in indicator_df.columns
|
||||||
|
|
||||||
enterdf = strategy.advise_entry(result, metadata=metadata)
|
enterdf = strategy.advise_entry(dataframe_1m, metadata=metadata)
|
||||||
assert isinstance(enterdf, DataFrame)
|
assert isinstance(enterdf, DataFrame)
|
||||||
|
|
||||||
assert 'buy' not in enterdf.columns
|
assert 'buy' not in enterdf.columns
|
||||||
assert 'enter_long' in enterdf.columns
|
assert 'enter_long' in enterdf.columns
|
||||||
|
|
||||||
exitdf = strategy.advise_exit(result, metadata=metadata)
|
exitdf = strategy.advise_exit(dataframe_1m, metadata=metadata)
|
||||||
assert isinstance(exitdf, DataFrame)
|
assert isinstance(exitdf, DataFrame)
|
||||||
assert 'sell' not in exitdf
|
assert 'sell' not in exitdf
|
||||||
assert 'exit_long' in exitdf
|
assert 'exit_long' in exitdf
|
||||||
|
Loading…
Reference in New Issue
Block a user