From 57bcff19640f54ccc770733aa4ef5fa677d6f6ee Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 30 Aug 2019 06:51:21 +0200 Subject: [PATCH] Test get_historic_trades --- tests/exchange/test_exchange.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index a621a5d52..081a36e19 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -1362,6 +1362,30 @@ async def test__async_fetch_trades(default_conf, mocker, caplog, exchange_name, await exchange._async_fetch_trades(pair, since=(arrow.utcnow().timestamp - 2000) * 1000) +@pytest.mark.parametrize("exchange_name", EXCHANGES) +def test_get_historic_trades(default_conf, mocker, caplog, exchange_name, trades_history): + mocker.patch('freqtrade.exchange.Exchange.exchange_has', return_value=True) + exchange = get_patched_exchange(mocker, default_conf, id=exchange_name) + + pair = 'ETH/BTC' + + exchange._async_get_trade_history_id = get_mock_coro((pair, trades_history)) + exchange._async_get_trade_history_time = get_mock_coro((pair, trades_history)) + # one_call calculation * 1.8 should do 2 calls + since = 5 * 60 * 500 * 1.8 + print(f"since = {since}") + ret = exchange.get_historic_trades(pair, since=trades_history[0]["timestamp"], + until=trades_history[-1]["timestamp"]) + + # Depending on the exchange, one or the other method should be called + assert sum([exchange._async_get_trade_history_id.call_count, + exchange._async_get_trade_history_time.call_count]) == 1 + + assert len(ret) == 2 + assert ret[0] == pair + assert len(ret[1]) == 3 + + @pytest.mark.parametrize("exchange_name", EXCHANGES) def test_cancel_order_dry_run(default_conf, mocker, exchange_name): default_conf['dry_run'] = True