Fail if unified account is detected.

This commit is contained in:
Matthias 2024-02-18 11:44:54 +01:00
parent e06b70eb05
commit 583b2fc690
2 changed files with 12 additions and 5 deletions

View File

@ -92,6 +92,8 @@ class Bybit(Exchange):
if is_unified and len(is_unified) > 1 and is_unified[1]: if is_unified and len(is_unified) > 1 and is_unified[1]:
self.unified_account = True self.unified_account = True
logger.info("Bybit: Unified account.") logger.info("Bybit: Unified account.")
raise OperationalException("Bybit: Unified account is not supported. "
"Please use a standard (sub)account.")
else: else:
self.unified_account = False self.unified_account = False
logger.info("Bybit: Standard account.") logger.info("Bybit: Standard account.")

View File

@ -1,8 +1,11 @@
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from unittest.mock import MagicMock from unittest.mock import MagicMock
import pytest
from freqtrade.enums.marginmode import MarginMode from freqtrade.enums.marginmode import MarginMode
from freqtrade.enums.tradingmode import TradingMode from freqtrade.enums.tradingmode import TradingMode
from freqtrade.exceptions import OperationalException
from tests.conftest import EXMS, get_mock_coro, get_patched_exchange, log_has from tests.conftest import EXMS, get_mock_coro, get_patched_exchange, log_has
from tests.exchange.test_exchange import ccxt_exceptionhandlers from tests.exchange.test_exchange import ccxt_exceptionhandlers
@ -24,12 +27,14 @@ def test_additional_exchange_init_bybit(default_conf, mocker, caplog):
api_mock.set_position_mode.reset_mock() api_mock.set_position_mode.reset_mock()
api_mock.is_unified_enabled = MagicMock(return_value=[False, True]) api_mock.is_unified_enabled = MagicMock(return_value=[False, True])
exchange = get_patched_exchange(mocker, default_conf, id="bybit", api_mock=api_mock) with pytest.raises(OperationalException, match=r"Bybit: Unified account is not supported.*"):
assert api_mock.set_position_mode.call_count == 1 get_patched_exchange(mocker, default_conf, id="bybit", api_mock=api_mock)
assert api_mock.is_unified_enabled.call_count == 1
assert exchange.unified_account is True
assert log_has("Bybit: Unified account.", caplog) assert log_has("Bybit: Unified account.", caplog)
# exchange = get_patched_exchange(mocker, default_conf, id="bybit", api_mock=api_mock)
# assert api_mock.set_position_mode.call_count == 1
# assert api_mock.is_unified_enabled.call_count == 1
# assert exchange.unified_account is True
ccxt_exceptionhandlers(mocker, default_conf, api_mock, 'bybit', ccxt_exceptionhandlers(mocker, default_conf, api_mock, 'bybit',
"additional_exchange_init", "set_position_mode") "additional_exchange_init", "set_position_mode")