Slightly refactor pairlist test

This commit is contained in:
Matthias
2024-01-27 14:52:05 +01:00
parent 132e143b9a
commit 076ca75200

View File

@@ -1515,7 +1515,34 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
assert log_has_re(r'Whitelist with 0 pairs: \[]', caplog)
def test_MarketCapPairList_filter(mocker, default_conf_usdt):
@pytest.mark.parametrize('pairlists,result', [
([
# Test top 2 mc
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "top_rank", "number_assets": 2}
], ['ETH/USDT', 'BTC/USDT']),
([
# Test top 6 mc
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "top_rank", "number_assets": 6}
], ['ETH/USDT', 'XRP/USDT', 'BTC/USDT']),
([
# Test total assets mode, 2 assets
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "total_assets", "number_assets": 2}
], ['BTC/USDT', 'ETH/USDT']),
([
# Test total assets mode, 5 assets
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "total_assets", "number_assets": 5}
], ['BTC/USDT', 'ETH/USDT', 'XRP/USDT']),
([
# MarketCapPairList as generator
{"method": "MarketCapPairList", "mode": "total_assets", "number_assets": 5}
], ['ETH/USDT', 'XRP/USDT'])
])
def test_MarketCapPairList_filter(mocker, default_conf_usdt, pairlists, result):
test_value = [
{
"symbol": "btc",
@@ -1549,13 +1576,9 @@ def test_MarketCapPairList_filter(mocker, default_conf_usdt):
}
]
# Test top 2 mc
default_conf_usdt['exchange']['pair_whitelist'].extend(['BTC/USDT', 'ETC/USDT'])
default_conf_usdt['trading_mode'] = 'spot'
default_conf_usdt['pairlists'] = [
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "top_rank", "number_assets": 2}
]
default_conf_usdt['pairlists'] = pairlists
mocker.patch(f'{EXMS}.exchange_has', MagicMock(return_value=True))
mocker.patch("freqtrade.plugins.pairlist.MarketCapPairList.CoinGeckoAPI.get_coins_markets",
@@ -1564,51 +1587,6 @@ def test_MarketCapPairList_filter(mocker, default_conf_usdt):
exchange = get_patched_exchange(mocker, default_conf_usdt)
pm = PairListManager(exchange, default_conf_usdt)
pm.refresh_pairlist()
whitelist = ['ETH/USDT', 'BTC/USDT']
assert whitelist == pm.whitelist
# Test top 6 mc
default_conf_usdt['pairlists'] = [
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "top_rank", "number_assets": 6}
]
pm = PairListManager(exchange, default_conf_usdt)
pm.refresh_pairlist()
whitelist = ['ETH/USDT', 'XRP/USDT', 'BTC/USDT']
assert whitelist == pm.whitelist
# Test total assets mode, 2 assets
default_conf_usdt['pairlists'] = [
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "total_assets", "number_assets": 2}
]
pm = PairListManager(exchange, default_conf_usdt)
pm.refresh_pairlist()
whitelist = ['BTC/USDT', 'ETH/USDT']
assert whitelist == pm.whitelist
# Test total assets mode, 5 assets
default_conf_usdt['pairlists'] = [
{"method": "StaticPairList", "allow_inactive": True},
{"method": "MarketCapPairList", "mode": "total_assets", "number_assets": 5}
]
pm = PairListManager(exchange, default_conf_usdt)
pm.refresh_pairlist()
whitelist = ['BTC/USDT', 'ETH/USDT', 'XRP/USDT']
assert whitelist == pm.whitelist
assert pm.whitelist == result