diff --git a/tests/exchange/test_bitget.py b/tests/exchange/test_bitget.py index 216e953db..ca32ba536 100644 --- a/tests/exchange/test_bitget.py +++ b/tests/exchange/test_bitget.py @@ -1,6 +1,5 @@ from datetime import timedelta -from sqlite3 import OperationalError -from unittest.mock import MagicMock +from unittest.mock import MagicMock, PropertyMock import pytest @@ -159,3 +158,38 @@ def test_dry_run_liquidation_price_cross_bitget(default_conf, mocker): 100, [], ) + + +def test__lev_prep_bitget(default_conf, mocker): + api_mock = MagicMock() + api_mock.set_margin_mode = MagicMock() + api_mock.set_leverage = MagicMock() + type(api_mock).has = PropertyMock(return_value={"setMarginMode": True, "setLeverage": True}) + exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange="bitget") + exchange._lev_prep("BTC/USDC:USDC", 3.2, "buy") + + assert api_mock.set_margin_mode.call_count == 0 + assert api_mock.set_leverage.call_count == 0 + + # test in futures mode + api_mock.set_margin_mode.reset_mock() + api_mock.set_leverage.reset_mock() + default_conf["dry_run"] = False + + default_conf["trading_mode"] = "futures" + default_conf["margin_mode"] = "isolated" + + exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange="bitget") + exchange._lev_prep("BTC/USDC:USDC", 3.2, "buy") + + assert api_mock.set_margin_mode.call_count == 0 + assert api_mock.set_leverage.call_count == 1 + api_mock.set_leverage.assert_called_with(symbol="BTC/USDC:USDC", leverage=3.2) + + api_mock.reset_mock() + + exchange._lev_prep("BTC/USDC:USDC", 19.99, "sell") + + assert api_mock.set_margin_mode.call_count == 0 + assert api_mock.set_leverage.call_count == 1 + api_mock.set_leverage.assert_called_with(symbol="BTC/USDC:USDC", leverage=19.99)