test: simplified test setup for compat tests
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from copy import deepcopy
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -9,7 +10,7 @@ from freqtrade.resolvers.exchange_resolver import ExchangeResolver
|
||||
from tests.conftest import EXMS, get_default_conf_usdt
|
||||
|
||||
|
||||
EXCHANGE_FIXTURE_TYPE = tuple[Exchange, str]
|
||||
EXCHANGE_FIXTURE_TYPE = tuple[Exchange, str, dict[str, Any]]
|
||||
EXCHANGE_WS_FIXTURE_TYPE = tuple[Exchange, str, str]
|
||||
|
||||
|
||||
@@ -565,26 +566,25 @@ def set_test_proxy(config: Config, use_proxy: bool) -> Config:
|
||||
|
||||
|
||||
def get_exchange(exchange_name, exchange_conf):
|
||||
exchange_conf = set_test_proxy(
|
||||
exchange_conf, EXCHANGES[exchange_name].get("use_ci_proxy", False)
|
||||
)
|
||||
exchange_params = EXCHANGES[exchange_name]
|
||||
exchange_conf = set_test_proxy(exchange_conf, exchange_params.get("use_ci_proxy", False))
|
||||
exchange_conf["exchange"]["name"] = exchange_name
|
||||
exchange_conf["stake_currency"] = EXCHANGES[exchange_name]["stake_currency"]
|
||||
exchange_conf["stake_currency"] = exchange_params["stake_currency"]
|
||||
exchange = ExchangeResolver.load_exchange(
|
||||
exchange_conf, validate=True, load_leverage_tiers=True
|
||||
)
|
||||
|
||||
return exchange, exchange_name
|
||||
return exchange, exchange_name, exchange_params
|
||||
|
||||
|
||||
def get_futures_exchange(exchange_name, exchange_conf, class_mocker):
|
||||
if EXCHANGES[exchange_name].get("futures") is not True:
|
||||
exchange_params = EXCHANGES[exchange_name]
|
||||
|
||||
if exchange_params.get("futures") is not True:
|
||||
pytest.skip(f"Exchange {exchange_name} does not support futures.")
|
||||
else:
|
||||
exchange_conf = deepcopy(exchange_conf)
|
||||
exchange_conf = set_test_proxy(
|
||||
exchange_conf, EXCHANGES[exchange_name].get("use_ci_proxy", False)
|
||||
)
|
||||
exchange_conf = set_test_proxy(exchange_conf, exchange_params.get("use_ci_proxy", False))
|
||||
exchange_conf["trading_mode"] = "futures"
|
||||
exchange_conf["margin_mode"] = "isolated"
|
||||
|
||||
@@ -600,15 +600,17 @@ def get_futures_exchange(exchange_name, exchange_conf, class_mocker):
|
||||
@pytest.fixture(params=EXCHANGES, scope="class")
|
||||
def exchange(request, exchange_conf, class_mocker):
|
||||
class_mocker.patch(f"{EXMS}.ft_additional_exchange_init")
|
||||
exchange, name = get_exchange(request.param, exchange_conf)
|
||||
yield exchange, name
|
||||
exchange, name, exchange_params = get_exchange(request.param, exchange_conf)
|
||||
yield exchange, name, exchange_params
|
||||
exchange.close()
|
||||
|
||||
|
||||
@pytest.fixture(params=EXCHANGES_FUTURES, scope="class")
|
||||
def exchange_futures(request, exchange_conf, class_mocker):
|
||||
exchange, name = get_futures_exchange(request.param, exchange_conf, class_mocker)
|
||||
yield exchange, name
|
||||
exchange, name, exchange_params = get_futures_exchange(
|
||||
request.param, exchange_conf, class_mocker
|
||||
)
|
||||
yield exchange, name, exchange_params
|
||||
exchange.close()
|
||||
|
||||
|
||||
@@ -625,10 +627,10 @@ def exchange_ws(request, exchange_conf, exchange_mode, class_mocker):
|
||||
if exchange_param.get("skip_ws_tests"):
|
||||
pytest.skip(f"{request.param} does not support websocket tests.")
|
||||
if exchange_mode == "spot":
|
||||
exchange, name = get_exchange(request.param, exchange_conf)
|
||||
exchange, name, _ = get_exchange(request.param, exchange_conf)
|
||||
pair = exchange_param["pair"]
|
||||
elif exchange_param.get("futures"):
|
||||
exchange, name = get_futures_exchange(
|
||||
exchange, name, _ = get_futures_exchange(
|
||||
request.param, exchange_conf, class_mocker=class_mocker
|
||||
)
|
||||
pair = exchange_param["futures_pair"]
|
||||
|
||||
Reference in New Issue
Block a user