From 03033a0684384a29266043c68619182131505fef Mon Sep 17 00:00:00 2001 From: Meng Xiangzhuo Date: Wed, 13 Nov 2024 12:36:18 +0800 Subject: [PATCH] refactor: use exchange.markets to avoid loading ccxt markets --- freqtrade/exchange/binance.py | 1 + tests/exchange/test_binance.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index eb079e04c..d361fd3da 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -176,6 +176,7 @@ class Binance(Exchange): timeframe=timeframe, since_ms=since_ms, until_ms=until_ms, + markets=self.markets, ) ) if df.empty: diff --git a/tests/exchange/test_binance.py b/tests/exchange/test_binance.py index 749dff663..f506e7e11 100644 --- a/tests/exchange/test_binance.py +++ b/tests/exchange/test_binance.py @@ -1,6 +1,6 @@ from datetime import datetime, timedelta from random import randint -from unittest.mock import AsyncMock, MagicMock, PropertyMock +from unittest.mock import MagicMock, PropertyMock import ccxt import pandas as pd @@ -763,12 +763,13 @@ def patch_ohlcv(mocker, start, archive_end, api_end, timeframe): until = dt_from_ts(until_ms) if until_ms else api_end + timedelta(seconds=1) return api_storage.loc[(api_storage["date"] >= since) & (api_storage["date"] < until)] - def fetch_ohlcv( + async def fetch_ohlcv( candle_type, pair, timeframe, since_ms, until_ms, + markets=None, stop_on_404=False, ): since = dt_from_ts(since_ms) @@ -783,10 +784,10 @@ def patch_ohlcv(mocker, start, archive_end, api_end, timeframe): "freqtrade.exchange.Exchange._async_get_candle_history", return_value=candle_history ) api_mock = mocker.patch( - "freqtrade.exchange.Exchange.get_historic_ohlcv", MagicMock(wraps=get_historic_ohlcv) + "freqtrade.exchange.Exchange.get_historic_ohlcv", side_effect=get_historic_ohlcv ) archive_mock = mocker.patch( - "freqtrade.exchange.binance_public_data.fetch_ohlcv", AsyncMock(wraps=fetch_ohlcv) + "freqtrade.exchange.binance_public_data.fetch_ohlcv", side_effect=fetch_ohlcv ) return candle_mock, api_mock, archive_mock @@ -957,6 +958,9 @@ def test_get_historic_ohlcv_binance( since_ms = dt_ts(since) until_ms = dt_ts(until) + mocker.patch("ccxt.binance.binance") + mocker.patch("ccxt.binance.binance.markets", {"BTC/USDT": {"id": "BTCUSDT"}}) + df = exchange.get_historic_ohlcv(pair, timeframe, since_ms, candle_type, is_new_pair, until_ms) if df.empty: