Fix wrong key usage in trade_history_timebased
This commit is contained in:
parent
7a628432a8
commit
bf182dc01e
@ -936,7 +936,7 @@ class Exchange:
|
|||||||
while True:
|
while True:
|
||||||
t = await self._async_fetch_trades(pair, since=since)
|
t = await self._async_fetch_trades(pair, since=since)
|
||||||
if len(t):
|
if len(t):
|
||||||
since = t[-1][1]
|
since = t[-1][0]
|
||||||
trades.extend(t)
|
trades.extend(t)
|
||||||
# Reached the end of the defined-download period
|
# Reached the end of the defined-download period
|
||||||
if until and t[-1][0] > until:
|
if until and t[-1][0] > until:
|
||||||
|
@ -1492,11 +1492,11 @@ def trades_for_order():
|
|||||||
|
|
||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
def trades_history():
|
def trades_history():
|
||||||
return [[1565798389463, '126181329', None, 'buy', 0.019627, 0.04, 0.00078508],
|
return [[1565798389463, '12618132aa9', None, 'buy', 0.019627, 0.04, 0.00078508],
|
||||||
[1565798399629, '126181330', None, 'buy', 0.019627, 0.244, 0.004788987999999999],
|
[1565798399629, '1261813bb30', None, 'buy', 0.019627, 0.244, 0.004788987999999999],
|
||||||
[1565798399752, '126181331', None, 'sell', 0.019626, 0.011, 0.00021588599999999999],
|
[1565798399752, '1261813cc31', None, 'sell', 0.019626, 0.011, 0.00021588599999999999],
|
||||||
[1565798399862, '126181332', None, 'sell', 0.019626, 0.011, 0.00021588599999999999],
|
[1565798399862, '126181cc332', None, 'sell', 0.019626, 0.011, 0.00021588599999999999],
|
||||||
[1565798399872, '126181333', None, 'sell', 0.019626, 0.011, 0.00021588599999999999]]
|
[1565798399872, '1261aa81333', None, 'sell', 0.019626, 0.011, 0.00021588599999999999]]
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
|
@ -1759,36 +1759,37 @@ async def test__async_get_trade_history_id(default_conf, mocker, caplog, exchang
|
|||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@pytest.mark.parametrize("exchange_name", EXCHANGES)
|
@pytest.mark.parametrize("exchange_name", EXCHANGES)
|
||||||
async def test__async_get_trade_history_time(default_conf, mocker, caplog, exchange_name,
|
async def test__async_get_trade_history_time(default_conf, mocker, caplog, exchange_name,
|
||||||
trades_history):
|
fetch_trades_result):
|
||||||
|
|
||||||
caplog.set_level(logging.DEBUG)
|
caplog.set_level(logging.DEBUG)
|
||||||
|
|
||||||
async def mock_get_trade_hist(pair, *args, **kwargs):
|
async def mock_get_trade_hist(pair, *args, **kwargs):
|
||||||
if kwargs['since'] == trades_history[0][0]:
|
if kwargs['since'] == fetch_trades_result[0]['timestamp']:
|
||||||
return trades_history[:-1]
|
return fetch_trades_result[:-1]
|
||||||
else:
|
else:
|
||||||
return trades_history[-1:]
|
return fetch_trades_result[-1:]
|
||||||
|
|
||||||
caplog.set_level(logging.DEBUG)
|
caplog.set_level(logging.DEBUG)
|
||||||
exchange = get_patched_exchange(mocker, default_conf, id=exchange_name)
|
exchange = get_patched_exchange(mocker, default_conf, id=exchange_name)
|
||||||
# Monkey-patch async function
|
# Monkey-patch async function
|
||||||
exchange._async_fetch_trades = MagicMock(side_effect=mock_get_trade_hist)
|
exchange._api_async.fetch_trades = MagicMock(side_effect=mock_get_trade_hist)
|
||||||
pair = 'ETH/BTC'
|
pair = 'ETH/BTC'
|
||||||
ret = await exchange._async_get_trade_history_time(pair, since=trades_history[0][0],
|
ret = await exchange._async_get_trade_history_time(pair,
|
||||||
until=trades_history[-1][0]-1)
|
since=fetch_trades_result[0]['timestamp'],
|
||||||
|
until=fetch_trades_result[-1]['timestamp']-1)
|
||||||
assert type(ret) is tuple
|
assert type(ret) is tuple
|
||||||
assert ret[0] == pair
|
assert ret[0] == pair
|
||||||
assert type(ret[1]) is list
|
assert type(ret[1]) is list
|
||||||
assert len(ret[1]) == len(trades_history)
|
assert len(ret[1]) == len(fetch_trades_result)
|
||||||
assert exchange._async_fetch_trades.call_count == 2
|
assert exchange._api_async.fetch_trades.call_count == 2
|
||||||
fetch_trades_cal = exchange._async_fetch_trades.call_args_list
|
fetch_trades_cal = exchange._api_async.fetch_trades.call_args_list
|
||||||
# first call (using since, not fromId)
|
# first call (using since, not fromId)
|
||||||
assert fetch_trades_cal[0][0][0] == pair
|
assert fetch_trades_cal[0][0][0] == pair
|
||||||
assert fetch_trades_cal[0][1]['since'] == trades_history[0][0]
|
assert fetch_trades_cal[0][1]['since'] == fetch_trades_result[0]['timestamp']
|
||||||
|
|
||||||
# 2nd call
|
# 2nd call
|
||||||
assert fetch_trades_cal[1][0][0] == pair
|
assert fetch_trades_cal[1][0][0] == pair
|
||||||
assert fetch_trades_cal[0][1]['since'] == trades_history[0][0]
|
assert fetch_trades_cal[1][1]['since'] == fetch_trades_result[-2]['timestamp']
|
||||||
assert log_has_re(r"Stopping because until was reached.*", caplog)
|
assert log_has_re(r"Stopping because until was reached.*", caplog)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user