Add test cases
This commit is contained in:
@@ -662,29 +662,48 @@ def test_pairlistmanager_no_pairlist(mocker, whitelist_conf):
|
||||
get_patched_freqtradebot(mocker, whitelist_conf)
|
||||
|
||||
|
||||
# @pytest.mark.parametrize("pairlists,base_currency,overall_performance,expected", [
|
||||
# # Happy path, descening order, all values filled
|
||||
# ([{"method": "StaticPairList"},{"method": "PerformanceFilter"}],'BTC',[{'pair':'ETH/BTC','profit':5,'count':3}, {'pair':'ETC/BTC','profit':4,'count':2}],['ETC/BTC']),
|
||||
# ])
|
||||
# def test_performance_filter(mocker, whitelist_conf, base_currency, pairlists, overall_performance, expected, tickers, markets, ohlcv_history_list):
|
||||
# whitelist_conf['pairlists'] = pairlists
|
||||
# whitelist_conf['stake_currency'] = base_currency
|
||||
@pytest.mark.parametrize("pairlists,pair_allowlist,overall_performance,allowlist_result", [
|
||||
# Happy path, descending order, all values filled
|
||||
([{"method": "StaticPairList"},{"method": "PerformanceFilter"}],
|
||||
['ETH/BTC','TKN/BTC'],
|
||||
[{'pair':'TKN/BTC','profit':5,'count':3}, {'pair':'ETH/BTC','profit':4,'count':2}],
|
||||
['TKN/BTC','ETH/BTC']),
|
||||
# Performance data outside allow list ignored
|
||||
([{"method": "StaticPairList"},{"method": "PerformanceFilter"}],
|
||||
['ETH/BTC','TKN/BTC'],
|
||||
[{'pair':'OTHER/BTC','profit':5,'count':3}, {'pair':'ETH/BTC','profit':4,'count':2}],
|
||||
['ETH/BTC','TKN/BTC']),
|
||||
# Partial performance data missing and sorted between positive and negative profit
|
||||
([{"method": "StaticPairList"},{"method": "PerformanceFilter"}],
|
||||
['ETH/BTC','TKN/BTC','LTC/BTC'],
|
||||
[{'pair':'ETH/BTC','profit':-5,'count':100}, {'pair':'TKN/BTC','profit':4,'count':2}],
|
||||
['TKN/BTC','LTC/BTC','ETH/BTC']),
|
||||
# Tie in performance data broken by count
|
||||
([{"method": "StaticPairList"},{"method": "PerformanceFilter"}],
|
||||
['ETH/BTC','TKN/BTC','LTC/BTC'],
|
||||
[{'pair':'LTC/BTC','profit':-5,'count':101}, {'pair':'TKN/BTC','profit':-5,'count':2}, {'pair':'ETH/BTC','profit':-5,'count':100}, ],
|
||||
['LTC/BTC','ETH/BTC','TKN/BTC']),
|
||||
])
|
||||
def test_performance_filter(mocker, whitelist_conf, pairlists, pair_allowlist, overall_performance, allowlist_result, tickers, markets, ohlcv_history_list):
|
||||
allowlist_conf = whitelist_conf
|
||||
allowlist_conf['pairlists'] = pairlists
|
||||
allowlist_conf['exchange']['pair_whitelist'] = pair_allowlist
|
||||
|
||||
# mocker.patch('freqtrade.exchange.Exchange.exchange_has', MagicMock(return_value=True))
|
||||
mocker.patch('freqtrade.exchange.Exchange.exchange_has', MagicMock(return_value=True))
|
||||
|
||||
# freqtrade = get_patched_freqtradebot(mocker, whitelist_conf)
|
||||
# mocker.patch.multiple('freqtrade.exchange.Exchange',
|
||||
# get_tickers=tickers,
|
||||
# markets=PropertyMock(return_value=markets)
|
||||
# )
|
||||
# mocker.patch.multiple(
|
||||
# 'freqtrade.exchange.Exchange',
|
||||
# get_historic_ohlcv=MagicMock(return_value=ohlcv_history_list),
|
||||
# )
|
||||
freqtrade = get_patched_freqtradebot(mocker, allowlist_conf)
|
||||
mocker.patch.multiple('freqtrade.exchange.Exchange',
|
||||
get_tickers=tickers,
|
||||
markets=PropertyMock(return_value=markets)
|
||||
)
|
||||
mocker.patch.multiple(
|
||||
'freqtrade.exchange.Exchange',
|
||||
get_historic_ohlcv=MagicMock(return_value=ohlcv_history_list),
|
||||
)
|
||||
|
||||
# mocker.patch.multiple('freqtrade.persistence.Trade',
|
||||
# get_overall_performance=MagicMock(return_value=overall_performance),
|
||||
# )
|
||||
# freqtrade.pairlists.refresh_pairlist()
|
||||
# whitelist = freqtrade.pairlists.whitelist
|
||||
# assert whitelist == expected
|
||||
mocker.patch.multiple('freqtrade.persistence.Trade',
|
||||
get_overall_performance=MagicMock(return_value=overall_performance),
|
||||
)
|
||||
freqtrade.pairlists.refresh_pairlist()
|
||||
allowlist = freqtrade.pairlists.whitelist
|
||||
assert allowlist == allowlist_result
|
||||
|
Reference in New Issue
Block a user