test: add test for exchange_has validation

This commit is contained in:
Matthias
2026-01-02 10:03:32 +01:00
parent 6c164683b7
commit a174461952
+41
View File
@@ -1,6 +1,7 @@
# pragma pylint: disable=missing-docstring, protected-access, invalid-name # pragma pylint: disable=missing-docstring, protected-access, invalid-name
from datetime import UTC, datetime, timedelta from datetime import UTC, datetime, timedelta
from math import isnan, nan from math import isnan, nan
from unittest.mock import MagicMock
import pytest import pytest
from ccxt import ( from ccxt import (
@@ -28,6 +29,7 @@ from freqtrade.exchange import (
timeframe_to_seconds, timeframe_to_seconds,
) )
from freqtrade.exchange.check_exchange import check_exchange from freqtrade.exchange.check_exchange import check_exchange
from freqtrade.exchange.exchange_utils import _exchange_has_helper
from tests.conftest import log_has_re from tests.conftest import log_has_re
@@ -385,3 +387,42 @@ def test_amount_to_contract_precision_standalone(
): ):
res = amount_to_contract_precision(amount, precision, precision_mode, contract_size) res = amount_to_contract_precision(amount, precision, precision_mode, contract_size)
assert pytest.approx(res) == expected assert pytest.approx(res) == expected
def test_exchange__exchange_has_helper():
e_mod = MagicMock()
e_mod.has = {
"fetchTicker": True,
"fetchOHLCV": False,
"fetchTrades": True,
"fetchMyTrades": False,
"fetchOrder": True,
}
required = {
"fetchOHLCV": [],
"fetchTicker": [],
"fetchMyTrades": ["fetchTrades"],
"fetchOrder": ["fetchOpenOrder", "fetchClosedOrder"],
}
missing = _exchange_has_helper(e_mod, required)
assert set(missing) == {"fetchOHLCV"}
e_mod.has = {
"fetchTicker": True,
"fetchOHLCV": False,
"fetchTrades": False,
"fetchMyTrades": False,
"fetchOrder": True,
}
missing = _exchange_has_helper(e_mod, required)
assert set(missing) == {"fetchOHLCV", "fetchMyTrades"}
e_mod.has = {
"fetchTicker": True,
"fetchOHLCV": False,
"fetchTrades": False,
"fetchMyTrades": False,
"fetchOrder": False,
}
missing = _exchange_has_helper(e_mod, required)
assert set(missing) == {"fetchOHLCV", "fetchMyTrades", "fetchOrder"}