tests: Have exchange test get_historic_ohlcv properly

This commit is contained in:
Matthias
2024-09-21 09:06:26 +02:00
parent e0df0257d1
commit 85138b0bc8
+11 -7
View File
@@ -2084,24 +2084,28 @@ def test___now_is_time_to_refresh(default_conf, mocker, exchange_name, time_mach
assert exchange._now_is_time_to_refresh(pair, "5m", candle_type) is True assert exchange._now_is_time_to_refresh(pair, "5m", candle_type) is True
@pytest.mark.parametrize("exchange_name", EXCHANGES)
@pytest.mark.parametrize("candle_type", ["mark", ""]) @pytest.mark.parametrize("candle_type", ["mark", ""])
@pytest.mark.parametrize("exchange_name", EXCHANGES)
def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name, candle_type): def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name, candle_type):
exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name) exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name)
pair = "ETH/BTC"
calls = 0
async def mock_candle_hist(pair, timeframe, candle_type, since_ms):
nonlocal calls
calls += 1
ohlcv = [ ohlcv = [
[ [
dt_ts(), # unix timestamp ms dt_ts(dt_now() + timedelta(minutes=5 * (calls + i))), # unix timestamp ms
1, # open 1, # open
2, # high 2, # high
3, # low 3, # low
4, # close 4, # close
5, # volume (in quote currency) 5, # volume (in quote currency)
] ]
for i in range(2)
] ]
pair = "ETH/BTC" return (pair, timeframe, candle_type, ohlcv, True)
async def mock_candle_hist(pair, timeframe, candle_type, since_ms):
return pair, timeframe, candle_type, ohlcv, True
exchange._async_get_candle_history = Mock(wraps=mock_candle_hist) exchange._async_get_candle_history = Mock(wraps=mock_candle_hist)
# one_call calculation * 1.8 should do 2 calls # one_call calculation * 1.8 should do 2 calls
@@ -2112,7 +2116,7 @@ def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name, candle_
) )
assert exchange._async_get_candle_history.call_count == 2 assert exchange._async_get_candle_history.call_count == 2
# Returns twice the above OHLCV data # Returns twice the above OHLCV data after truncating the open candle.
assert len(ret) == 2 assert len(ret) == 2
assert log_has_re(r"Downloaded data for .* with length .*\.", caplog) assert log_has_re(r"Downloaded data for .* with length .*\.", caplog)