From d1e73c19162e418e102352a5c751b7efbfa662a2 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 18 Oct 2025 09:48:48 +0200 Subject: [PATCH] test: add test for cross liquidation price not supported --- freqtrade/exchange/bitget.py | 2 +- tests/exchange/test_bitget.py | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/freqtrade/exchange/bitget.py b/freqtrade/exchange/bitget.py index c85ff0d1b..398cf1803 100644 --- a/freqtrade/exchange/bitget.py +++ b/freqtrade/exchange/bitget.py @@ -234,5 +234,5 @@ class Bitget(Exchange): ) else: raise OperationalException( - "Freqtrade only supports isolated futures for leverage trading" + "Freqtrade currently only supports isolated futures for bitget" ) diff --git a/tests/exchange/test_bitget.py b/tests/exchange/test_bitget.py index 117c62b7b..216e953db 100644 --- a/tests/exchange/test_bitget.py +++ b/tests/exchange/test_bitget.py @@ -1,10 +1,11 @@ from datetime import timedelta +from sqlite3 import OperationalError from unittest.mock import MagicMock import pytest from freqtrade.enums import CandleType, MarginMode, TradingMode -from freqtrade.exceptions import RetryableOrderError +from freqtrade.exceptions import OperationalException, RetryableOrderError from freqtrade.exchange.common import API_RETRY_COUNT from freqtrade.util import dt_now, dt_ts from tests.conftest import EXMS, get_patched_exchange @@ -135,3 +136,26 @@ def test_additional_exchange_init_bitget(default_conf, mocker): ccxt_exceptionhandlers( mocker, default_conf, api_mock, "bitget", "additional_exchange_init", "set_position_mode" ) + + +def test_dry_run_liquidation_price_cross_bitget(default_conf, mocker): + default_conf["dry_run"] = True + default_conf["trading_mode"] = TradingMode.FUTURES + default_conf["margin_mode"] = MarginMode.CROSS + api_mock = MagicMock() + mocker.patch(f"{EXMS}.get_maintenance_ratio_and_amt", MagicMock(return_value=(0.005, 0.0))) + exchange = get_patched_exchange(mocker, default_conf, exchange="bitget", api_mock=api_mock) + + with pytest.raises( + OperationalException, match="Freqtrade currently only supports isolated futures for bitget" + ): + exchange.dry_run_liquidation_price( + "ETH/USDT:USDT", + 100_000, + False, + 0.1, + 100, + 10, + 100, + [], + )