mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-13 19:31:15 +00:00
test: Add test for candle type verification
This commit is contained in:
@@ -2388,6 +2388,7 @@ async def test__async_get_historic_ohlcv(default_conf, mocker, caplog, exchange_
|
|||||||
5, # volume (in quote currency)
|
5, # volume (in quote currency)
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
mocker.patch(f"{EXMS}.verify_candle_type_support", MagicMock())
|
||||||
exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name)
|
exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name)
|
||||||
# Monkey-patch async function
|
# Monkey-patch async function
|
||||||
exchange._api_async.fetch_ohlcv = get_mock_coro(ohlcv)
|
exchange._api_async.fetch_ohlcv = get_mock_coro(ohlcv)
|
||||||
@@ -2438,6 +2439,7 @@ def test_refresh_latest_ohlcv(mocker, default_conf_usdt, caplog, candle_type) ->
|
|||||||
]
|
]
|
||||||
|
|
||||||
caplog.set_level(logging.DEBUG)
|
caplog.set_level(logging.DEBUG)
|
||||||
|
mocker.patch(f"{EXMS}.verify_candle_type_support", MagicMock())
|
||||||
exchange = get_patched_exchange(mocker, default_conf_usdt)
|
exchange = get_patched_exchange(mocker, default_conf_usdt)
|
||||||
exchange._api_async.fetch_ohlcv = get_mock_coro(ohlcv)
|
exchange._api_async.fetch_ohlcv = get_mock_coro(ohlcv)
|
||||||
|
|
||||||
@@ -2688,6 +2690,7 @@ def test_refresh_latest_ohlcv_cache(mocker, default_conf, candle_type, time_mach
|
|||||||
ohlcv = generate_test_data_raw("1h", 100, start.strftime("%Y-%m-%d"))
|
ohlcv = generate_test_data_raw("1h", 100, start.strftime("%Y-%m-%d"))
|
||||||
time_machine.move_to(start + timedelta(hours=99, minutes=30))
|
time_machine.move_to(start + timedelta(hours=99, minutes=30))
|
||||||
|
|
||||||
|
mocker.patch(f"{EXMS}.verify_candle_type_support", MagicMock())
|
||||||
exchange = get_patched_exchange(mocker, default_conf)
|
exchange = get_patched_exchange(mocker, default_conf)
|
||||||
exchange._set_startup_candle_count(default_conf)
|
exchange._set_startup_candle_count(default_conf)
|
||||||
|
|
||||||
@@ -5472,8 +5475,13 @@ def test__fetch_and_calculate_funding_fees(
|
|||||||
api_mock = MagicMock()
|
api_mock = MagicMock()
|
||||||
api_mock.fetch_funding_rate_history = get_mock_coro(return_value=funding_rate_history)
|
api_mock.fetch_funding_rate_history = get_mock_coro(return_value=funding_rate_history)
|
||||||
api_mock.fetch_ohlcv = get_mock_coro(return_value=mark_ohlcv)
|
api_mock.fetch_ohlcv = get_mock_coro(return_value=mark_ohlcv)
|
||||||
type(api_mock).has = PropertyMock(return_value={"fetchOHLCV": True})
|
type(api_mock).has = PropertyMock(
|
||||||
type(api_mock).has = PropertyMock(return_value={"fetchFundingRateHistory": True})
|
return_value={
|
||||||
|
"fetchFundingRateHistory": True,
|
||||||
|
"fetchMarkOHLCV": True,
|
||||||
|
"fetchOHLCV": True,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
ex = get_patched_exchange(mocker, default_conf, api_mock, exchange=exchange)
|
ex = get_patched_exchange(mocker, default_conf, api_mock, exchange=exchange)
|
||||||
mocker.patch(f"{EXMS}.timeframes", PropertyMock(return_value=["1h", "4h", "8h"]))
|
mocker.patch(f"{EXMS}.timeframes", PropertyMock(return_value=["1h", "4h", "8h"]))
|
||||||
@@ -5517,8 +5525,13 @@ def test__fetch_and_calculate_funding_fees_datetime_called(
|
|||||||
api_mock.fetch_funding_rate_history = get_mock_coro(
|
api_mock.fetch_funding_rate_history = get_mock_coro(
|
||||||
return_value=funding_rate_history_octohourly
|
return_value=funding_rate_history_octohourly
|
||||||
)
|
)
|
||||||
type(api_mock).has = PropertyMock(return_value={"fetchOHLCV": True})
|
type(api_mock).has = PropertyMock(
|
||||||
type(api_mock).has = PropertyMock(return_value={"fetchFundingRateHistory": True})
|
return_value={
|
||||||
|
"fetchFundingRateHistory": True,
|
||||||
|
"fetchMarkOHLCV": True,
|
||||||
|
"fetchOHLCV": True,
|
||||||
|
}
|
||||||
|
)
|
||||||
mocker.patch(f"{EXMS}.timeframes", PropertyMock(return_value=["4h", "8h"]))
|
mocker.patch(f"{EXMS}.timeframes", PropertyMock(return_value=["4h", "8h"]))
|
||||||
exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange=exchange)
|
exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange=exchange)
|
||||||
d1 = datetime.strptime("2021-08-31 23:00:01 +0000", "%Y-%m-%d %H:%M:%S %z")
|
d1 = datetime.strptime("2021-08-31 23:00:01 +0000", "%Y-%m-%d %H:%M:%S %z")
|
||||||
@@ -6605,3 +6618,31 @@ def test_fetch_funding_rate(default_conf, mocker, exchange_name):
|
|||||||
|
|
||||||
with pytest.raises(DependencyException, match=r"Pair XRP/ETH not available"):
|
with pytest.raises(DependencyException, match=r"Pair XRP/ETH not available"):
|
||||||
exchange.fetch_funding_rate(pair="XRP/ETH")
|
exchange.fetch_funding_rate(pair="XRP/ETH")
|
||||||
|
|
||||||
|
|
||||||
|
def test_verify_candle_type_support(default_conf, mocker):
|
||||||
|
api_mock = MagicMock()
|
||||||
|
type(api_mock).has = PropertyMock(
|
||||||
|
return_value={
|
||||||
|
"fetchFundingRateHistory": True,
|
||||||
|
"fetchIndexOHLCV": True,
|
||||||
|
"fetchMarkOHLCV": True,
|
||||||
|
"fetchPremiumIndexOHLCV": False,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
exchange = get_patched_exchange(mocker, default_conf, api_mock)
|
||||||
|
|
||||||
|
# Should pass
|
||||||
|
exchange.verify_candle_type_support("futures")
|
||||||
|
exchange.verify_candle_type_support(CandleType.FUTURES)
|
||||||
|
exchange.verify_candle_type_support(CandleType.FUNDING_RATE)
|
||||||
|
exchange.verify_candle_type_support(CandleType.SPOT)
|
||||||
|
exchange.verify_candle_type_support(CandleType.MARK)
|
||||||
|
|
||||||
|
# Should fail:
|
||||||
|
|
||||||
|
with pytest.raises(
|
||||||
|
OperationalException,
|
||||||
|
match=r"Exchange .* does not support fetching premiumindex candles\.",
|
||||||
|
):
|
||||||
|
exchange.verify_candle_type_support(CandleType.PREMIUMINDEX)
|
||||||
|
|||||||
Reference in New Issue
Block a user