mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-01 09:33:05 +00:00
test: update test trading-mode validation test
This commit is contained in:
@@ -4897,53 +4897,66 @@ def test_set_margin_mode(mocker, default_conf, margin_mode):
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"exchange_name, trading_mode, margin_mode, exception_thrown",
|
||||
"exchange_name, trading_mode, margin_mode, allow_none_margin_mode, exception_thrown",
|
||||
[
|
||||
("binance", TradingMode.SPOT, None, False),
|
||||
("binance", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
||||
("kraken", TradingMode.SPOT, None, False),
|
||||
("kraken", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
||||
("kraken", TradingMode.FUTURES, MarginMode.ISOLATED, True),
|
||||
("bitmart", TradingMode.SPOT, None, False),
|
||||
("bitmart", TradingMode.MARGIN, MarginMode.CROSS, True),
|
||||
("bitmart", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
||||
("bitmart", TradingMode.FUTURES, MarginMode.CROSS, True),
|
||||
("bitmart", TradingMode.FUTURES, MarginMode.ISOLATED, True),
|
||||
("gate", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
||||
("okx", TradingMode.SPOT, None, False),
|
||||
("okx", TradingMode.MARGIN, MarginMode.CROSS, True),
|
||||
("okx", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
||||
("okx", TradingMode.FUTURES, MarginMode.CROSS, True),
|
||||
("binance", TradingMode.FUTURES, MarginMode.ISOLATED, False),
|
||||
("gate", TradingMode.FUTURES, MarginMode.ISOLATED, False),
|
||||
("okx", TradingMode.FUTURES, MarginMode.ISOLATED, False),
|
||||
("binance", TradingMode.SPOT, None, False, False),
|
||||
("binance", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||
("kraken", TradingMode.SPOT, None, False, False),
|
||||
("kraken", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||
("kraken", TradingMode.FUTURES, MarginMode.ISOLATED, False, True),
|
||||
("bitmart", TradingMode.SPOT, None, False, False),
|
||||
("bitmart", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||
("bitmart", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||
("bitmart", TradingMode.FUTURES, MarginMode.CROSS, False, True),
|
||||
("bitmart", TradingMode.FUTURES, MarginMode.ISOLATED, False, True),
|
||||
("gate", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||
("okx", TradingMode.SPOT, None, False, False),
|
||||
("okx", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||
("okx", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||
("okx", TradingMode.FUTURES, MarginMode.CROSS, False, True),
|
||||
("binance", TradingMode.FUTURES, MarginMode.ISOLATED, False, False),
|
||||
("gate", TradingMode.FUTURES, MarginMode.ISOLATED, False, False),
|
||||
("okx", TradingMode.FUTURES, MarginMode.ISOLATED, False, False),
|
||||
# * Remove once implemented
|
||||
("binance", TradingMode.MARGIN, MarginMode.CROSS, True),
|
||||
("binance", TradingMode.FUTURES, MarginMode.CROSS, False),
|
||||
("kraken", TradingMode.MARGIN, MarginMode.CROSS, True),
|
||||
("kraken", TradingMode.FUTURES, MarginMode.CROSS, True),
|
||||
("gate", TradingMode.MARGIN, MarginMode.CROSS, True),
|
||||
("gate", TradingMode.FUTURES, MarginMode.CROSS, True),
|
||||
("binance", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||
("binance", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||
("binance", TradingMode.FUTURES, None, False, True),
|
||||
# Validate without margin mode
|
||||
("binance", TradingMode.FUTURES, None, True, False),
|
||||
("kraken", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||
("kraken", TradingMode.FUTURES, MarginMode.CROSS, False, True),
|
||||
("gate", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||
("gate", TradingMode.FUTURES, MarginMode.CROSS, False, True),
|
||||
# * Uncomment once implemented
|
||||
# ("binance", TradingMode.MARGIN, MarginMode.CROSS, False),
|
||||
# ("binance", TradingMode.FUTURES, MarginMode.CROSS, False),
|
||||
# ("kraken", TradingMode.MARGIN, MarginMode.CROSS, False),
|
||||
# ("kraken", TradingMode.FUTURES, MarginMode.CROSS, False),
|
||||
# ("gate", TradingMode.MARGIN, MarginMode.CROSS, False),
|
||||
# ("gate", TradingMode.FUTURES, MarginMode.CROSS, False),
|
||||
# ("binance", TradingMode.MARGIN, MarginMode.CROSS, False, False),
|
||||
# ("binance", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||
# ("kraken", TradingMode.MARGIN, MarginMode.CROSS, False, False),
|
||||
# ("kraken", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||
# ("gate", TradingMode.MARGIN, MarginMode.CROSS, False, False),
|
||||
# ("gate", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||
],
|
||||
)
|
||||
def test_validate_trading_mode_and_margin_mode(
|
||||
default_conf, mocker, exchange_name, trading_mode, margin_mode, exception_thrown
|
||||
default_conf,
|
||||
mocker,
|
||||
exchange_name,
|
||||
trading_mode,
|
||||
margin_mode,
|
||||
allow_none_margin_mode,
|
||||
exception_thrown,
|
||||
):
|
||||
exchange = get_patched_exchange(
|
||||
mocker, default_conf, exchange=exchange_name, mock_supported_modes=False
|
||||
)
|
||||
if exception_thrown:
|
||||
with pytest.raises(OperationalException):
|
||||
exchange.validate_trading_mode_and_margin_mode(trading_mode, margin_mode)
|
||||
exchange.validate_trading_mode_and_margin_mode(
|
||||
trading_mode, margin_mode, allow_none_margin_mode
|
||||
)
|
||||
else:
|
||||
exchange.validate_trading_mode_and_margin_mode(trading_mode, margin_mode)
|
||||
exchange.validate_trading_mode_and_margin_mode(
|
||||
trading_mode, margin_mode, allow_none_margin_mode
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
||||
Reference in New Issue
Block a user