diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 39200c8f7..4c09b4e46 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -801,8 +801,8 @@ class Exchange: # Fetch first elements using timebased method to get an ID to paginate on # Depending on the Exchange, this can introduce a drift at the start of the interval # of up to an hour. - # Binance returns the "last 1000" candles within a 1h time interval - # - so we will miss the first candles. + # e.g. Binance returns the "last 1000" candles within a 1h time interval + # - so we will miss the first trades. t = await self._async_fetch_trades(pair, since=since) from_id = t[-1]['id'] trades.extend(t[:-1]) diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 9e6356b18..018cab3b8 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -1136,6 +1136,13 @@ async def test__async_get_candle_history(default_conf, mocker, caplog, exchange_ await exchange._async_get_candle_history(pair, "5m", (arrow.utcnow().timestamp - 2000) * 1000) + with pytest.raises(OperationalException, match=r'Exchange.* does not support fetching ' + r'historical candlestick data\..*'): + api_mock.fetch_ohlcv = MagicMock(side_effect=ccxt.NotSupported("Not supported")) + exchange = get_patched_exchange(mocker, default_conf, api_mock, id=exchange_name) + await exchange._async_get_candle_history(pair, "5m", + (arrow.utcnow().timestamp - 2000) * 1000) + @pytest.mark.asyncio async def test__async_get_candle_history_empty(default_conf, mocker, caplog):