mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 05:50:36 +00:00
tests: enhance test for marketcappairlist
This commit is contained in:
@@ -2212,7 +2212,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"pairlists,trade_mode,result",
|
||||
"pairlists,trade_mode,result,coin_market_calls",
|
||||
[
|
||||
(
|
||||
[
|
||||
@@ -2222,6 +2222,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"spot",
|
||||
["BTC/USDT", "ETH/USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2231,6 +2232,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"spot",
|
||||
["BTC/USDT", "ETH/USDT", "XRP/USDT", "ADA/USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2240,6 +2242,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"spot",
|
||||
["BTC/USDT", "ETH/USDT", "XRP/USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2249,6 +2252,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"spot",
|
||||
["BTC/USDT", "ETH/USDT", "XRP/USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2257,6 +2261,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"spot",
|
||||
["BTC/USDT", "ETH/USDT", "XRP/USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2265,6 +2270,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"spot",
|
||||
["BTC/USDT", "ETH/USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2273,6 +2279,7 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"futures",
|
||||
["ETH/USDT:USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
@@ -2281,11 +2288,34 @@ def test_FullTradesFilter(mocker, default_conf_usdt, fee, caplog) -> None:
|
||||
],
|
||||
"futures",
|
||||
["ETH/USDT:USDT", "ADA/USDT:USDT"],
|
||||
1,
|
||||
),
|
||||
(
|
||||
[
|
||||
# MarketCapPairList as generator - futures, 1 category
|
||||
{"method": "MarketCapPairList", "number_assets": 2, "categories": ["layer-1"]}
|
||||
],
|
||||
"futures",
|
||||
["ETH/USDT:USDT", "ADA/USDT:USDT"],
|
||||
["layer-1"],
|
||||
),
|
||||
(
|
||||
[
|
||||
# MarketCapPairList as generator - futures, 1 category
|
||||
{
|
||||
"method": "MarketCapPairList",
|
||||
"number_assets": 2,
|
||||
"categories": ["layer-1", "protocol"],
|
||||
}
|
||||
],
|
||||
"futures",
|
||||
["ETH/USDT:USDT", "ADA/USDT:USDT"],
|
||||
["layer-1", "protocol"],
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_MarketCapPairList_filter(
|
||||
mocker, default_conf_usdt, trade_mode, markets, pairlists, result
|
||||
mocker, default_conf_usdt, trade_mode, markets, pairlists, result, coin_market_calls
|
||||
):
|
||||
test_value = [
|
||||
{"symbol": "btc"},
|
||||
@@ -2309,8 +2339,16 @@ def test_MarketCapPairList_filter(
|
||||
markets=PropertyMock(return_value=markets),
|
||||
exchange_has=MagicMock(return_value=True),
|
||||
)
|
||||
|
||||
mocker.patch(
|
||||
"freqtrade.plugins.pairlist.MarketCapPairList.FtCoinGeckoApi.get_coins_categories_list",
|
||||
return_value=[
|
||||
{"category_id": "layer-1"},
|
||||
{"category_id": "protocol"},
|
||||
{"category_id": "defi"},
|
||||
],
|
||||
)
|
||||
|
||||
gcm_mock = mocker.patch(
|
||||
"freqtrade.plugins.pairlist.MarketCapPairList.FtCoinGeckoApi.get_coins_markets",
|
||||
return_value=test_value,
|
||||
)
|
||||
@@ -2319,6 +2357,15 @@ def test_MarketCapPairList_filter(
|
||||
|
||||
pm = PairListManager(exchange, default_conf_usdt)
|
||||
pm.refresh_pairlist()
|
||||
if isinstance(coin_market_calls, int):
|
||||
assert gcm_mock.call_count == coin_market_calls
|
||||
else:
|
||||
assert gcm_mock.call_count == len(coin_market_calls)
|
||||
for call in coin_market_calls:
|
||||
assert any(
|
||||
"category" in c.kwargs and c.kwargs["category"] == call
|
||||
for c in gcm_mock.call_args_list
|
||||
)
|
||||
|
||||
assert pm.whitelist == result
|
||||
|
||||
|
||||
Reference in New Issue
Block a user