|
|
|
|
@ -385,7 +385,7 @@ def test_reload_markets(default_conf, mocker, caplog):
|
|
|
|
|
exchange = get_patched_exchange(mocker, default_conf, api_mock, id="binance",
|
|
|
|
|
mock_markets=False)
|
|
|
|
|
exchange._load_async_markets = MagicMock()
|
|
|
|
|
exchange._last_markets_refresh = arrow.utcnow().timestamp
|
|
|
|
|
exchange._last_markets_refresh = arrow.utcnow().int_timestamp
|
|
|
|
|
updated_markets = {'ETH/BTC': {}, "LTC/BTC": {}}
|
|
|
|
|
|
|
|
|
|
assert exchange.markets == initial_markets
|
|
|
|
|
@ -396,7 +396,7 @@ def test_reload_markets(default_conf, mocker, caplog):
|
|
|
|
|
assert exchange._load_async_markets.call_count == 0
|
|
|
|
|
|
|
|
|
|
# more than 10 minutes have passed, reload is executed
|
|
|
|
|
exchange._last_markets_refresh = arrow.utcnow().timestamp - 15 * 60
|
|
|
|
|
exchange._last_markets_refresh = arrow.utcnow().int_timestamp - 15 * 60
|
|
|
|
|
exchange.reload_markets()
|
|
|
|
|
assert exchange.markets == updated_markets
|
|
|
|
|
assert exchange._load_async_markets.call_count == 1
|
|
|
|
|
@ -1264,7 +1264,7 @@ def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name):
|
|
|
|
|
exchange = get_patched_exchange(mocker, default_conf, id=exchange_name)
|
|
|
|
|
ohlcv = [
|
|
|
|
|
[
|
|
|
|
|
arrow.utcnow().timestamp * 1000, # unix timestamp ms
|
|
|
|
|
arrow.utcnow().int_timestamp * 1000, # unix timestamp ms
|
|
|
|
|
1, # open
|
|
|
|
|
2, # high
|
|
|
|
|
3, # low
|
|
|
|
|
@ -1281,7 +1281,8 @@ def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name):
|
|
|
|
|
# one_call calculation * 1.8 should do 2 calls
|
|
|
|
|
|
|
|
|
|
since = 5 * 60 * exchange._ft_has['ohlcv_candle_limit'] * 1.8
|
|
|
|
|
ret = exchange.get_historic_ohlcv(pair, "5m", int((arrow.utcnow().timestamp - since) * 1000))
|
|
|
|
|
ret = exchange.get_historic_ohlcv(pair, "5m", int((
|
|
|
|
|
arrow.utcnow().int_timestamp - since) * 1000))
|
|
|
|
|
|
|
|
|
|
assert exchange._async_get_candle_history.call_count == 2
|
|
|
|
|
# Returns twice the above OHLCV data
|
|
|
|
|
@ -1291,7 +1292,7 @@ def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name):
|
|
|
|
|
def test_refresh_latest_ohlcv(mocker, default_conf, caplog) -> None:
|
|
|
|
|
ohlcv = [
|
|
|
|
|
[
|
|
|
|
|
(arrow.utcnow().timestamp - 1) * 1000, # unix timestamp ms
|
|
|
|
|
(arrow.utcnow().int_timestamp - 1) * 1000, # unix timestamp ms
|
|
|
|
|
1, # open
|
|
|
|
|
2, # high
|
|
|
|
|
3, # low
|
|
|
|
|
@ -1299,7 +1300,7 @@ def test_refresh_latest_ohlcv(mocker, default_conf, caplog) -> None:
|
|
|
|
|
5, # volume (in quote currency)
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
arrow.utcnow().timestamp * 1000, # unix timestamp ms
|
|
|
|
|
arrow.utcnow().int_timestamp * 1000, # unix timestamp ms
|
|
|
|
|
3, # open
|
|
|
|
|
1, # high
|
|
|
|
|
4, # low
|
|
|
|
|
@ -1345,7 +1346,7 @@ def test_refresh_latest_ohlcv(mocker, default_conf, caplog) -> None:
|
|
|
|
|
async def test__async_get_candle_history(default_conf, mocker, caplog, exchange_name):
|
|
|
|
|
ohlcv = [
|
|
|
|
|
[
|
|
|
|
|
arrow.utcnow().timestamp * 1000, # unix timestamp ms
|
|
|
|
|
arrow.utcnow().int_timestamp * 1000, # unix timestamp ms
|
|
|
|
|
1, # open
|
|
|
|
|
2, # high
|
|
|
|
|
3, # low
|
|
|
|
|
@ -1380,14 +1381,14 @@ async def test__async_get_candle_history(default_conf, mocker, caplog, exchange_
|
|
|
|
|
api_mock.fetch_ohlcv = MagicMock(side_effect=ccxt.BaseError("Unknown error"))
|
|
|
|
|
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)
|
|
|
|
|
(arrow.utcnow().int_timestamp - 2000) * 1000)
|
|
|
|
|
|
|
|
|
|
with pytest.raises(OperationalException, match=r'Exchange.* does not support fetching '
|
|
|
|
|
r'historical candle \(OHLCV\) 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)
|
|
|
|
|
(arrow.utcnow().int_timestamp - 2000) * 1000)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
|
|
|
@ -1599,13 +1600,13 @@ async def test__async_fetch_trades(default_conf, mocker, caplog, exchange_name,
|
|
|
|
|
with pytest.raises(OperationalException, match=r'Could not fetch trade data*'):
|
|
|
|
|
api_mock.fetch_trades = MagicMock(side_effect=ccxt.BaseError("Unknown error"))
|
|
|
|
|
exchange = get_patched_exchange(mocker, default_conf, api_mock, id=exchange_name)
|
|
|
|
|
await exchange._async_fetch_trades(pair, since=(arrow.utcnow().timestamp - 2000) * 1000)
|
|
|
|
|
await exchange._async_fetch_trades(pair, since=(arrow.utcnow().int_timestamp - 2000) * 1000)
|
|
|
|
|
|
|
|
|
|
with pytest.raises(OperationalException, match=r'Exchange.* does not support fetching '
|
|
|
|
|
r'historical trade data\..*'):
|
|
|
|
|
api_mock.fetch_trades = MagicMock(side_effect=ccxt.NotSupported("Not supported"))
|
|
|
|
|
exchange = get_patched_exchange(mocker, default_conf, api_mock, id=exchange_name)
|
|
|
|
|
await exchange._async_fetch_trades(pair, since=(arrow.utcnow().timestamp - 2000) * 1000)
|
|
|
|
|
await exchange._async_fetch_trades(pair, since=(arrow.utcnow().int_timestamp - 2000) * 1000)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
|
|
|
|