feat: be clear on the use of demo exchanges
This commit is contained in:
@@ -249,7 +249,7 @@ class Exchange:
|
|||||||
|
|
||||||
# Holds all open sell orders for dry_run
|
# Holds all open sell orders for dry_run
|
||||||
self._dry_run_open_orders: dict[str, Any] = {}
|
self._dry_run_open_orders: dict[str, Any] = {}
|
||||||
|
self._is_demo_trading = exchange_conf.get("demo_trading", False)
|
||||||
if self._config["dry_run"]:
|
if self._config["dry_run"]:
|
||||||
logger.info("Instance is running with dry_run enabled")
|
logger.info("Instance is running with dry_run enabled")
|
||||||
logger.info(f"Using CCXT {ccxt.__version__}")
|
logger.info(f"Using CCXT {ccxt.__version__}")
|
||||||
@@ -437,12 +437,12 @@ class Exchange:
|
|||||||
@property
|
@property
|
||||||
def name(self) -> str:
|
def name(self) -> str:
|
||||||
"""exchange Name (from ccxt)"""
|
"""exchange Name (from ccxt)"""
|
||||||
return self._api.name
|
return self._api.name if not self._is_demo_trading else f"{self._api.name} (Demo)"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def id(self) -> str:
|
def id(self) -> str:
|
||||||
"""exchange ccxt id"""
|
"""exchange ccxt id"""
|
||||||
return self._api.id
|
return self._api.id if not self._is_demo_trading else f"{self._api.id}_demo"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def timeframes(self) -> list[str]:
|
def timeframes(self) -> list[str]:
|
||||||
|
|||||||
@@ -4312,12 +4312,29 @@ def test_fetch_order_or_stoploss_order(default_conf, mocker):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("exchange_name", EXCHANGES)
|
@pytest.mark.parametrize("exchange_name", EXCHANGES)
|
||||||
def test_name(default_conf, mocker, exchange_name):
|
def test_name(default_conf_usdt, mocker, exchange_name):
|
||||||
exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name)
|
# exchange = get_patched_exchange(mocker, default_conf_usdt, exchange=exchange_name)
|
||||||
|
api_mock = MagicMock()
|
||||||
|
api_mock.name = exchange_name.title()
|
||||||
|
api_mock.id = exchange_name
|
||||||
|
mocker.patch(f"{EXMS}._init_ccxt", MagicMock(return_value=api_mock))
|
||||||
|
mocker.patch(f"{EXMS}._load_async_markets")
|
||||||
|
# mocker.patch(f"{EXMS}.validate_timeframes")
|
||||||
|
# mocker.patch(f"{EXMS}.validate_stakecurrency")
|
||||||
|
# mocker.patch(f"{EXMS}.validate_pricing")
|
||||||
|
default_conf_usdt["exchange"]["name"] = "exchange_name"
|
||||||
|
exchange = ExchangeResolver.load_exchange(default_conf_usdt, validate=False)
|
||||||
|
|
||||||
assert exchange.name == exchange_name.title()
|
assert exchange.name == exchange_name.title()
|
||||||
assert exchange.id == exchange_name
|
assert exchange.id == exchange_name
|
||||||
|
|
||||||
|
default_conf_usdt["exchange"]["demo_trading"] = True
|
||||||
|
|
||||||
|
exchange_demo = ExchangeResolver.load_exchange(default_conf_usdt, validate=False)
|
||||||
|
|
||||||
|
assert exchange_demo.name == f"{exchange_name.title()} (Demo)"
|
||||||
|
assert exchange_demo.id == f"{exchange_name}_demo"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"trading_mode,amount",
|
"trading_mode,amount",
|
||||||
|
|||||||
Reference in New Issue
Block a user