test: add test for bitget stoploss canceling

This commit is contained in:
Matthias
2026-04-20 20:03:58 +02:00
parent b467eff8be
commit af2e741465
+36 -1
View File
@@ -5,7 +5,7 @@ from unittest.mock import MagicMock, PropertyMock
import pytest
from freqtrade.enums import CandleType, MarginMode, RunMode, TradingMode
from freqtrade.exceptions import OperationalException, RetryableOrderError
from freqtrade.exceptions import InvalidOrderException, OperationalException, RetryableOrderError
from freqtrade.exchange.common import API_RETRY_COUNT
from freqtrade.util import dt_now, dt_ts, dt_utc
from tests.conftest import EXMS, get_patched_exchange
@@ -77,6 +77,41 @@ def test_fetch_stoploss_order_bitget_exceptions(default_conf_usdt, mocker):
)
@pytest.mark.usefixtures("init_persistence")
def test_cancel_stoploss_order_bitget(default_conf_usdt, mocker):
default_conf_usdt["dry_run"] = False
api_mock = MagicMock()
exchange = get_patched_exchange(mocker, default_conf_usdt, api_mock, exchange="bitget")
# Spot scenario
exchange.cancel_order = MagicMock(return_value={"id": "1234"})
assert exchange.cancel_stoploss_order("1234", "ETH/USDT", {}) == {"id": "1234"}
assert exchange.cancel_order.call_count == 1
exchange.cancel_order.assert_called_once_with("1234", "ETH/USDT", {"stop": True})
# Futures scenario
default_conf_usdt["trading_mode"] = TradingMode.FUTURES
default_conf_usdt["margin_mode"] = MarginMode.ISOLATED
exchange = get_patched_exchange(mocker, default_conf_usdt, api_mock, exchange="bitget")
exchange.cancel_order = MagicMock(return_value={"id": "1234"})
assert exchange.cancel_stoploss_order("1234", "ETH/USDT:USDT", {}) == {"id": "1234"}
assert exchange.cancel_order.call_count == 1
exchange.cancel_order.assert_called_once_with(
"1234", "ETH/USDT:USDT", {"stop": True, "planType": "pos_loss"}
)
exchange.cancel_order = MagicMock(
side_effect=[InvalidOrderException("API error"), {"id": "1234"}]
)
assert exchange.cancel_stoploss_order("1234", "ETH/USDT:USDT", {}) == {"id": "1234"}
assert exchange.cancel_order.call_count == 2
exchange.cancel_order.assert_any_call(
"1234", "ETH/USDT:USDT", {"stop": True, "planType": "pos_loss"}
)
exchange.cancel_order.assert_any_call("1234", "ETH/USDT:USDT", {"stop": True})
def test_bitget_ohlcv_candle_limit(mocker, default_conf_usdt):
# This test is also a live test - so we're sure our limits are correct.
api_mock = MagicMock()