From d8fa782f13662e7f223405e8793b35a8c1adefa4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 11 Dec 2024 07:07:47 +0100 Subject: [PATCH] test: Add test with faulty behavior part of #11074 --- freqtrade/plugins/pairlist/PercentChangePairList.py | 1 - tests/conftest.py | 4 ++-- tests/plugins/test_percentchangepairlist.py | 12 +++++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/freqtrade/plugins/pairlist/PercentChangePairList.py b/freqtrade/plugins/pairlist/PercentChangePairList.py index cbc86f259..984853591 100644 --- a/freqtrade/plugins/pairlist/PercentChangePairList.py +++ b/freqtrade/plugins/pairlist/PercentChangePairList.py @@ -191,7 +191,6 @@ class PercentChangePairList(IPairList): for k, v in tickers.items() if ( self._exchange.get_pair_quote_currency(k) == self._stake_currency - and (self._use_range or v.get("percentage") is not None) and v["symbol"] in _pairlist ) ] diff --git a/tests/conftest.py b/tests/conftest.py index df8a31974..69ea8878b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2237,7 +2237,7 @@ def tickers(): "first": None, "last": 8603.67, "change": -0.879, - "percentage": None, + "percentage": -8.95, "average": None, "baseVolume": 30414.604298, "quoteVolume": 259629896.48584127, @@ -2281,7 +2281,7 @@ def tickers(): "first": None, "last": 129.28, "change": 1.795, - "percentage": None, + "percentage": -2.5, "average": None, "baseVolume": 59698.79897, "quoteVolume": 29132399.743954, diff --git a/tests/plugins/test_percentchangepairlist.py b/tests/plugins/test_percentchangepairlist.py index df165cf98..9d661c9c4 100644 --- a/tests/plugins/test_percentchangepairlist.py +++ b/tests/plugins/test_percentchangepairlist.py @@ -360,9 +360,15 @@ def test_gen_pairlist_from_tickers(mocker, rpl_config, tickers): exchange = get_patched_exchange(mocker, rpl_config, exchange="binance") pairlistmanager = PairListManager(exchange, rpl_config) - remote_pairlist = PercentChangePairList( - exchange, pairlistmanager, rpl_config, rpl_config["pairlists"][0], 0 - ) + remote_pairlist = pairlistmanager._pairlist_handlers[0] + + # The generator returns BTC ETH and TKN - filtering the first ensures removing pairs in this step ain't problematic. + def _validate_pair(pair, ticker): + if pair == "BTC/USDT": + return False + return True + + remote_pairlist._validate_pair = _validate_pair result = remote_pairlist.gen_pairlist(tickers.return_value)