Use startup_candle-count to determine call count
This commit is contained in:
		| @@ -941,12 +941,26 @@ def test_validate_required_startup_candles(default_conf, mocker, caplog): | ||||
|     default_conf['startup_candle_count'] = 20 | ||||
|     ex = Exchange(default_conf) | ||||
|     assert ex | ||||
|     default_conf['startup_candle_count'] = 600 | ||||
|     # assumption is that the exchange provides 500 candles per call.s | ||||
|     assert ex.validate_required_startup_candles(200, '5m') == 1 | ||||
|     assert ex.validate_required_startup_candles(499, '5m') == 1 | ||||
|     assert ex.validate_required_startup_candles(600, '5m') == 2 | ||||
|     assert ex.validate_required_startup_candles(501, '5m') == 2 | ||||
|     assert ex.validate_required_startup_candles(499, '5m') == 1 | ||||
|     assert ex.validate_required_startup_candles(1000, '5m') == 3 | ||||
|     assert ex.validate_required_startup_candles(2499, '5m') == 5 | ||||
|     assert log_has_re(r'Using 5 calls to get OHLCV. This.*', caplog) | ||||
|  | ||||
|     with pytest.raises(OperationalException, match=r'This strategy requires 600.*'): | ||||
|     with pytest.raises(OperationalException, match=r'This strategy requires 2500.*'): | ||||
|         ex.validate_required_startup_candles(2500, '5m') | ||||
|  | ||||
|     # Ensure the same also happens on init | ||||
|     default_conf['startup_candle_count'] = 6000 | ||||
|     with pytest.raises(OperationalException, match=r'This strategy requires 6000.*'): | ||||
|         Exchange(default_conf) | ||||
|  | ||||
|  | ||||
|  | ||||
| def test_exchange_has(default_conf, mocker): | ||||
|     exchange = get_patched_exchange(mocker, default_conf) | ||||
|     assert not exchange.exchange_has('ASDFASDF') | ||||
| @@ -1632,12 +1646,14 @@ def test_refresh_latest_ohlcv(mocker, default_conf, caplog) -> None: | ||||
|     assert exchange._api_async.fetch_ohlcv.call_count == 2 | ||||
|     exchange._api_async.fetch_ohlcv.reset_mock() | ||||
|  | ||||
|     exchange.required_candle_call_count = 2 | ||||
|     res = exchange.refresh_latest_ohlcv(pairs) | ||||
|     assert len(res) == len(pairs) | ||||
|  | ||||
|     assert log_has(f'Refreshing candle (OHLCV) data for {len(pairs)} pairs', caplog) | ||||
|     assert exchange._klines | ||||
|     assert exchange._api_async.fetch_ohlcv.call_count == 2 | ||||
|     assert exchange._api_async.fetch_ohlcv.call_count == 4 | ||||
|     exchange._api_async.fetch_ohlcv.reset_mock() | ||||
|     for pair in pairs: | ||||
|         assert isinstance(exchange.klines(pair), DataFrame) | ||||
|         assert len(exchange.klines(pair)) > 0 | ||||
| @@ -1653,7 +1669,7 @@ def test_refresh_latest_ohlcv(mocker, default_conf, caplog) -> None: | ||||
|     res = exchange.refresh_latest_ohlcv([('IOTA/ETH', '5m'), ('XRP/ETH', '5m')]) | ||||
|     assert len(res) == len(pairs) | ||||
|  | ||||
|     assert exchange._api_async.fetch_ohlcv.call_count == 2 | ||||
|     assert exchange._api_async.fetch_ohlcv.call_count == 0 | ||||
|     assert log_has(f"Using cached candle (OHLCV) data for pair {pairs[0][0]}, " | ||||
|                    f"timeframe {pairs[0][1]} ...", | ||||
|                    caplog) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user