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(
|
@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.SPOT, None, False, False),
|
||||||
("binance", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
("binance", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||||
("kraken", TradingMode.SPOT, None, False),
|
("kraken", TradingMode.SPOT, None, False, False),
|
||||||
("kraken", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
("kraken", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||||
("kraken", TradingMode.FUTURES, MarginMode.ISOLATED, True),
|
("kraken", TradingMode.FUTURES, MarginMode.ISOLATED, False, True),
|
||||||
("bitmart", TradingMode.SPOT, None, False),
|
("bitmart", TradingMode.SPOT, None, False, False),
|
||||||
("bitmart", TradingMode.MARGIN, MarginMode.CROSS, True),
|
("bitmart", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||||
("bitmart", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
("bitmart", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||||
("bitmart", TradingMode.FUTURES, MarginMode.CROSS, True),
|
("bitmart", TradingMode.FUTURES, MarginMode.CROSS, False, True),
|
||||||
("bitmart", TradingMode.FUTURES, MarginMode.ISOLATED, True),
|
("bitmart", TradingMode.FUTURES, MarginMode.ISOLATED, False, True),
|
||||||
("gate", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
("gate", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||||
("okx", TradingMode.SPOT, None, False),
|
("okx", TradingMode.SPOT, None, False, False),
|
||||||
("okx", TradingMode.MARGIN, MarginMode.CROSS, True),
|
("okx", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||||
("okx", TradingMode.MARGIN, MarginMode.ISOLATED, True),
|
("okx", TradingMode.MARGIN, MarginMode.ISOLATED, False, True),
|
||||||
("okx", TradingMode.FUTURES, MarginMode.CROSS, True),
|
("okx", TradingMode.FUTURES, MarginMode.CROSS, False, True),
|
||||||
("binance", TradingMode.FUTURES, MarginMode.ISOLATED, False),
|
("binance", TradingMode.FUTURES, MarginMode.ISOLATED, False, False),
|
||||||
("gate", TradingMode.FUTURES, MarginMode.ISOLATED, False),
|
("gate", TradingMode.FUTURES, MarginMode.ISOLATED, False, False),
|
||||||
("okx", TradingMode.FUTURES, MarginMode.ISOLATED, False),
|
("okx", TradingMode.FUTURES, MarginMode.ISOLATED, False, False),
|
||||||
# * Remove once implemented
|
# * Remove once implemented
|
||||||
("binance", TradingMode.MARGIN, MarginMode.CROSS, True),
|
("binance", TradingMode.MARGIN, MarginMode.CROSS, False, True),
|
||||||
("binance", TradingMode.FUTURES, MarginMode.CROSS, False),
|
("binance", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||||
("kraken", TradingMode.MARGIN, MarginMode.CROSS, True),
|
("binance", TradingMode.FUTURES, None, False, True),
|
||||||
("kraken", TradingMode.FUTURES, MarginMode.CROSS, True),
|
# Validate without margin mode
|
||||||
("gate", TradingMode.MARGIN, MarginMode.CROSS, True),
|
("binance", TradingMode.FUTURES, None, True, False),
|
||||||
("gate", TradingMode.FUTURES, MarginMode.CROSS, True),
|
("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
|
# * Uncomment once implemented
|
||||||
# ("binance", TradingMode.MARGIN, MarginMode.CROSS, False),
|
# ("binance", TradingMode.MARGIN, MarginMode.CROSS, False, False),
|
||||||
# ("binance", TradingMode.FUTURES, MarginMode.CROSS, False),
|
# ("binance", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||||
# ("kraken", TradingMode.MARGIN, MarginMode.CROSS, False),
|
# ("kraken", TradingMode.MARGIN, MarginMode.CROSS, False, False),
|
||||||
# ("kraken", TradingMode.FUTURES, MarginMode.CROSS, False),
|
# ("kraken", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||||
# ("gate", TradingMode.MARGIN, MarginMode.CROSS, False),
|
# ("gate", TradingMode.MARGIN, MarginMode.CROSS, False, False),
|
||||||
# ("gate", TradingMode.FUTURES, MarginMode.CROSS, False),
|
# ("gate", TradingMode.FUTURES, MarginMode.CROSS, False, False),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_validate_trading_mode_and_margin_mode(
|
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(
|
exchange = get_patched_exchange(
|
||||||
mocker, default_conf, exchange=exchange_name, mock_supported_modes=False
|
mocker, default_conf, exchange=exchange_name, mock_supported_modes=False
|
||||||
)
|
)
|
||||||
if exception_thrown:
|
if exception_thrown:
|
||||||
with pytest.raises(OperationalException):
|
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:
|
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(
|
@pytest.mark.parametrize(
|
||||||
|
|||||||
Reference in New Issue
Block a user