From c37f03a638d31a4dbe561c90e5dd8d3353861f54 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 15 Feb 2022 07:42:40 +0100 Subject: [PATCH] Update static-markets to include futures pair --- freqtrade/exchange/okx.py | 4 +--- tests/commands/test_commands.py | 32 ++++++++++++++++---------------- tests/conftest.py | 8 +++++--- tests/exchange/test_exchange.py | 16 +++++++++------- tests/exchange/test_okx.py | 3 ++- 5 files changed, 33 insertions(+), 30 deletions(-) diff --git a/freqtrade/exchange/okx.py b/freqtrade/exchange/okx.py index 3fa62de9e..ce87c91a0 100644 --- a/freqtrade/exchange/okx.py +++ b/freqtrade/exchange/okx.py @@ -86,9 +86,7 @@ class Okx(Exchange): for symbol in sorted(symbols): res = self._api.fetch_leverage_tiers(symbol) - tiers[symbol] = [] - for tier in res[symbol]: - tiers[symbol].append(self.parse_leverage_tier(tier)) + tiers[symbol] = res[symbol] logger.info(f"Done initializing {len(symbols)} markets.") return tiers diff --git a/tests/commands/test_commands.py b/tests/commands/test_commands.py index 676499642..7baa91720 100644 --- a/tests/commands/test_commands.py +++ b/tests/commands/test_commands.py @@ -231,9 +231,9 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ("Exchange Bittrex has 10 active markets: " - "BLK/BTC, ETH/BTC, ETH/USDT, LTC/BTC, LTC/ETH, LTC/USD, NEO/BTC, " - "TKN/BTC, XLTCUSDT, XRP/BTC.\n" + assert ("Exchange Bittrex has 12 active markets: " + "ADA/USDT:USDT, BLK/BTC, ETH/BTC, ETH/USDT, ETH/USDT:USDT, LTC/BTC, " + "LTC/ETH, LTC/USD, NEO/BTC, TKN/BTC, XLTCUSDT, XRP/BTC.\n" in captured.out) patch_exchange(mocker, api_mock=api_mock, id="binance", mock_markets=markets_static) @@ -246,7 +246,7 @@ def test_list_markets(mocker, markets_static, capsys): pargs['config'] = None start_list_markets(pargs, False) captured = capsys.readouterr() - assert re.match("\nExchange Binance has 10 active markets:\n", + assert re.match("\nExchange Binance has 12 active markets:\n", captured.out) patch_exchange(mocker, api_mock=api_mock, id="bittrex", mock_markets=markets_static) @@ -258,9 +258,9 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ("Exchange Bittrex has 12 markets: " - "BLK/BTC, BTT/BTC, ETH/BTC, ETH/USDT, LTC/BTC, LTC/ETH, LTC/USD, LTC/USDT, NEO/BTC, " - "TKN/BTC, XLTCUSDT, XRP/BTC.\n" + assert ("Exchange Bittrex has 14 markets: " + "ADA/USDT:USDT, BLK/BTC, BTT/BTC, ETH/BTC, ETH/USDT, ETH/USDT:USDT, " + "LTC/BTC, LTC/ETH, LTC/USD, LTC/USDT, NEO/BTC, TKN/BTC, XLTCUSDT, XRP/BTC.\n" in captured.out) # Test list-pairs subcommand: active pairs @@ -297,8 +297,8 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ("Exchange Bittrex has 6 active markets with ETH, LTC as base currencies: " - "ETH/BTC, ETH/USDT, LTC/BTC, LTC/ETH, LTC/USD, XLTCUSDT.\n" + assert ("Exchange Bittrex has 7 active markets with ETH, LTC as base currencies: " + "ETH/BTC, ETH/USDT, ETH/USDT:USDT, LTC/BTC, LTC/ETH, LTC/USD, XLTCUSDT.\n" in captured.out) # active markets, base=LTC @@ -323,8 +323,8 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ("Exchange Bittrex has 3 active markets with USDT, USD as quote currencies: " - "ETH/USDT, LTC/USD, XLTCUSDT.\n" + assert ("Exchange Bittrex has 5 active markets with USDT, USD as quote currencies: " + "ADA/USDT:USDT, ETH/USDT, ETH/USDT:USDT, LTC/USD, XLTCUSDT.\n" in captured.out) # active markets, quote=USDT @@ -336,8 +336,8 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ("Exchange Bittrex has 2 active markets with USDT as quote currency: " - "ETH/USDT, XLTCUSDT.\n" + assert ("Exchange Bittrex has 4 active markets with USDT as quote currency: " + "ADA/USDT:USDT, ETH/USDT, ETH/USDT:USDT, XLTCUSDT.\n" in captured.out) # active markets, base=LTC, quote=USDT @@ -399,7 +399,7 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ("Exchange Bittrex has 10 active markets:\n" + assert ("Exchange Bittrex has 12 active markets:\n" in captured.out) # Test tabular output, no markets found @@ -422,8 +422,8 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert ('["BLK/BTC","ETH/BTC","ETH/USDT","LTC/BTC","LTC/ETH","LTC/USD","NEO/BTC",' - '"TKN/BTC","XLTCUSDT","XRP/BTC"]' + assert ('["ADA/USDT:USDT","BLK/BTC","ETH/BTC","ETH/USDT","ETH/USDT:USDT",' + '"LTC/BTC","LTC/ETH","LTC/USD","NEO/BTC","TKN/BTC","XLTCUSDT","XRP/BTC"]' in captured.out) # Test --print-csv diff --git a/tests/conftest.py b/tests/conftest.py index b9dd86d1d..00c8c3916 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -846,7 +846,7 @@ def get_markets(): 'option': False, 'active': True, 'contract': None, - 'linear': True, + 'linear': None, 'inverse': None, 'taker': 0.0006, 'maker': 0.0002, @@ -891,7 +891,7 @@ def get_markets(): 'future': True, 'swap': True, 'margin': True, - 'linear': True, + 'linear': None, 'inverse': False, 'type': 'spot', 'contractSize': None, @@ -1398,7 +1398,9 @@ def markets_static(): # market list. Do not modify this list without a good reason! Do not modify market parameters # of listed pairs in get_markets() without a good reason either! static_markets = ['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', - 'LTC/USDT', 'NEO/BTC', 'TKN/BTC', 'XLTCUSDT', 'XRP/BTC'] + 'LTC/USDT', 'NEO/BTC', 'TKN/BTC', 'XLTCUSDT', 'XRP/BTC', + 'ADA/USDT:USDT', 'ETH/USDT:USDT', + ] all_markets = get_markets() return {m: all_markets[m] for m in static_markets} diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 5e8a44ef4..d43c0518d 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -3003,8 +3003,9 @@ def test_get_valid_pair_combination(default_conf, mocker, markets): # 'XLTCUSDT': 'active': True, not a pair # 'XRP/BTC': 'active': False ([], [], False, False, False, False, - ['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', - 'LTC/USDT', 'NEO/BTC', 'TKN/BTC', 'XLTCUSDT', 'XRP/BTC'], + ['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', 'LTC/USDT', + 'NEO/BTC', 'TKN/BTC', 'XLTCUSDT', 'XRP/BTC', 'ADA/USDT:USDT', + 'ETH/USDT:USDT'], 'all markets'), ([], [], False, False, True, False, ['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', @@ -3012,7 +3013,7 @@ def test_get_valid_pair_combination(default_conf, mocker, markets): 'all markets, only spot pairs'), ([], [], False, True, False, False, ['BLK/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', 'NEO/BTC', - 'TKN/BTC', 'XLTCUSDT', 'XRP/BTC'], + 'TKN/BTC', 'XLTCUSDT', 'XRP/BTC', 'ADA/USDT:USDT', 'ETH/USDT:USDT'], 'active markets'), ([], [], True, False, False, False, ['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', @@ -3023,7 +3024,8 @@ def test_get_valid_pair_combination(default_conf, mocker, markets): 'TKN/BTC', 'XRP/BTC'], 'active pairs'), (['ETH', 'LTC'], [], False, False, False, False, - ['ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT'], + ['ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/ETH', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT', + 'ETH/USDT:USDT'], 'all markets, base=ETH, LTC'), (['LTC'], [], False, False, False, False, ['LTC/BTC', 'LTC/ETH', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT'], @@ -3032,13 +3034,13 @@ def test_get_valid_pair_combination(default_conf, mocker, markets): ['LTC/BTC', 'LTC/ETH', 'LTC/USD', 'LTC/USDT'], 'spot markets, base=LTC'), ([], ['USDT'], False, False, False, False, - ['ETH/USDT', 'LTC/USDT', 'XLTCUSDT'], + ['ETH/USDT', 'LTC/USDT', 'XLTCUSDT', 'ADA/USDT:USDT', 'ETH/USDT:USDT'], 'all markets, quote=USDT'), ([], ['USDT'], False, False, False, True, - ['ETH/USDT', 'LTC/USDT'], + ['ADA/USDT:USDT', 'ETH/USDT:USDT'], 'Futures markets, quote=USDT'), ([], ['USDT', 'USD'], False, False, False, False, - ['ETH/USDT', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT'], + ['ETH/USDT', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT', 'ADA/USDT:USDT', 'ETH/USDT:USDT'], 'all markets, quote=USDT, USD'), ([], ['USDT', 'USD'], False, False, True, False, ['ETH/USDT', 'LTC/USD', 'LTC/USDT'], diff --git a/tests/exchange/test_okx.py b/tests/exchange/test_okx.py index 597c75632..2eaa1736d 100644 --- a/tests/exchange/test_okx.py +++ b/tests/exchange/test_okx.py @@ -309,7 +309,8 @@ def test_load_leverage_tiers_okx(default_conf, mocker, markets): exchange.trading_mode = TradingMode.FUTURES exchange.margin_mode = MarginMode.ISOLATED exchange.markets = markets - assert exchange.load_leverage_tiers() == { + # Initialization of load_leverage_tiers happens as part of exchange init. + exchange._leverage_tiers == { 'ADA/USDT:USDT': [ { 'tier': 1,