async def test__async_get_historic_ohlcv_binance(default_conf, mocker, caplog): ohlcv = [ [ int((datetime.now(timezone.utc).timestamp() - 1000) * 1000), 1, # open 2, # high 3, # low 4, # close 5, # volume (in quote currency) ] ] exchange = get_patched_exchange(mocker, default_conf, id='binance') # Monkey-patch async function exchange._api_async.fetch_ohlcv = get_mock_coro(ohlcv) pair = 'ETH/BTC' res = await exchange._async_get_historic_ohlcv(pair, "5m", 1500000000000, is_new_pair=False) # Call with very old timestamp - causes tons of requests assert exchange._api_async.fetch_ohlcv.call_count > 400 # assert res == ohlcv exchange._api_async.fetch_ohlcv.reset_mock() res = await exchange._async_get_historic_ohlcv(pair, "5m", 1500000000000, is_new_pair=True) # Called twice - one "init" call - and one to get the actual data. assert exchange._api_async.fetch_ohlcv.call_count == 2 assert res == ohlcv assert log_has_re(r"Candle-data for ETH/BTC available starting with .*", caplog)
def test_api_UvicornServer_run_no_uvloop(mocker, import_fails): serve_mock = mocker.patch('freqtrade.rpc.api_server.uvicorn_threaded.UvicornServer.serve', get_mock_coro(None)) s = UvicornServer(uvicorn.Config(MagicMock(), port=8080, host='127.0.0.1')) assert serve_mock.call_count == 0 s.install_signal_handlers() # Original implementation starts a thread - make sure that's not the case assert serve_mock.call_count == 0 # Fake started to avoid sleeping forever s.started = True s.run() assert serve_mock.call_count == 1