add tests

This commit is contained in:
Stefano
2026-02-28 10:58:34 +09:00
parent b94b0926a7
commit 991a1b1ab7
4 changed files with 120 additions and 15 deletions

View File

@@ -2584,6 +2584,107 @@ def test_MarketCapPairList_exceptions(mocker, default_conf_usdt, caplog):
PairListManager(exchange, default_conf_usdt)
@pytest.mark.parametrize(
"pairlists,trade_mode,result",
[
(
[
# Whitelist mode on spot
{"method": "StaticPairList", "allow_inactive": True},
{"method": "CrossMarketPairList", "mode": "whitelist"},
],
"spot",
["ETH/USDT"],
),
(
[
# Blacklist mode on spot
{"method": "StaticPairList", "allow_inactive": True},
{"method": "CrossMarketPairList", "mode": "blacklist"},
],
"spot",
["LTC/USDT", "XRP/USDT", "NEO/USDT", "TKN/USDT", "BTC/USDT"],
),
(
[
# Whitelist mode on futures
{"method": "StaticPairList", "allow_inactive": True},
{"method": "CrossMarketPairList", "mode": "whitelist"},
],
"futures",
["ETH/USDT:USDT"],
),
(
[
# Blacklist mode on futures
{"method": "StaticPairList", "allow_inactive": True},
{"method": "CrossMarketPairList", "mode": "blacklist"},
],
"futures",
["ADA/USDT:USDT"],
),
(
[
# CrossMarketPairList as generator, whitelist mode, spot market
{"method": "CrossMarketPairList", "mode": "whitelist"},
],
"spot",
["ETH/USDT"],
),
(
[
# CrossMarketPairList as generator, blacklist mode, spot market
{"method": "CrossMarketPairList", "mode": "blacklist"},
],
"spot",
["BTC/USDT", "XRP/USDT", "NEO/USDT", "TKN/USDT"],
),
(
[
# CrossMarketPairList as generator, whitelist mode, futures market
{"method": "CrossMarketPairList", "mode": "whitelist"},
],
"futures",
["ETH/USDT:USDT"],
),
(
[
# CrossMarketPairList as generator, blacklist mode, futures market
{"method": "CrossMarketPairList", "mode": "blacklist"},
],
"futures",
["ADA/USDT:USDT"],
),
],
)
def test_CrossMarketPairlist_filter(
mocker, default_conf_usdt, trade_mode, markets, pairlists, result
):
default_conf_usdt["trading_mode"] = trade_mode
if trade_mode == "spot":
default_conf_usdt["exchange"]["pair_whitelist"].extend(["BTC/USDT", "ETC/USDT", "ADA/USDT"])
else:
default_conf_usdt["exchange"]["pair_whitelist"] = [
"BTC/USDT:USDT",
"ETH/USDT:USDT",
"ETC/USDT:USDT",
"ADA/USDT:USDT",
]
default_conf_usdt["pairlists"] = pairlists
mocker.patch.multiple(
EXMS,
markets=PropertyMock(return_value=markets),
exchange_has=MagicMock(return_value=True),
)
exchange = get_patched_exchange(mocker, default_conf_usdt)
pm = PairListManager(exchange, default_conf_usdt)
pm.refresh_pairlist()
assert pm.whitelist == result
@pytest.mark.parametrize(
"pairlists,expected_error,expected_warning",
[