test ticker caching
This commit is contained in:
parent
e690003621
commit
a901f21bcd
@ -275,6 +275,7 @@ def get_ticker(pair: str, refresh: Optional[bool] = True) -> dict:
|
|||||||
try:
|
try:
|
||||||
_CACHED_TICKER[pair] = {
|
_CACHED_TICKER[pair] = {
|
||||||
'bid': float(data['bid']),
|
'bid': float(data['bid']),
|
||||||
|
'ask': float(data['ask']),
|
||||||
}
|
}
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
logger.debug("Could not cache ticker data for %s", pair)
|
logger.debug("Could not cache ticker data for %s", pair)
|
||||||
|
@ -310,9 +310,19 @@ def test_get_ticker(default_conf, mocker):
|
|||||||
# if not fetching a new result we should get the cached ticker
|
# if not fetching a new result we should get the cached ticker
|
||||||
ticker = get_ticker(pair='ETH/BTC')
|
ticker = get_ticker(pair='ETH/BTC')
|
||||||
|
|
||||||
|
assert api_mock.fetch_ticker.call_count == 1
|
||||||
assert ticker['bid'] == 0.5
|
assert ticker['bid'] == 0.5
|
||||||
assert ticker['ask'] == 1
|
assert ticker['ask'] == 1
|
||||||
|
|
||||||
|
assert 'ETH/BTC' in exchange._CACHED_TICKER
|
||||||
|
assert exchange._CACHED_TICKER['ETH/BTC']['bid'] == 0.5
|
||||||
|
assert exchange._CACHED_TICKER['ETH/BTC']['ask'] == 1
|
||||||
|
|
||||||
|
# Test caching
|
||||||
|
api_mock.fetch_ticker = MagicMock()
|
||||||
|
get_ticker(pair='ETH/BTC', refresh=False)
|
||||||
|
assert api_mock.fetch_ticker.call_count == 0
|
||||||
|
|
||||||
with pytest.raises(TemporaryError): # test retrier
|
with pytest.raises(TemporaryError): # test retrier
|
||||||
api_mock.fetch_ticker = MagicMock(side_effect=ccxt.NetworkError)
|
api_mock.fetch_ticker = MagicMock(side_effect=ccxt.NetworkError)
|
||||||
mocker.patch('freqtrade.exchange._API', api_mock)
|
mocker.patch('freqtrade.exchange._API', api_mock)
|
||||||
|
Loading…
Reference in New Issue
Block a user