test: add asserts for backtest wallet capturing

This commit is contained in:
Matthias
2026-01-05 19:55:32 +01:00
parent 3a9160aace
commit 7dfcf846d0
+18
View File
@@ -757,10 +757,12 @@ def test_backtest__check_trade_exit(default_conf, mocker) -> None:
def test_backtest_one(default_conf, mocker, testdatadir) -> None:
default_conf["use_exit_signal"] = False
default_conf["max_open_trades"] = 10
default_conf["runmode"] = RunMode.BACKTEST
patch_exchange(mocker)
mocker.patch(f"{EXMS}.get_min_pair_stake_amount", return_value=0.00001)
mocker.patch(f"{EXMS}.get_max_pair_stake_amount", return_value=float("inf"))
mocker.patch(f"{EXMS}.get_pair_base_currency", lambda _, x: x.split("/")[0])
backtesting = Backtesting(default_conf)
backtesting._set_strategy(backtesting.strategylist[0])
pair = "UNITTEST/BTC"
@@ -875,13 +877,23 @@ def test_backtest_one(default_conf, mocker, testdatadir) -> None:
ln1.iloc[0]["low"], 6
) < round(t["close_rate"], 6) < round(ln1.iloc[0]["high"], 6)
wallet_summary = result["wallet_summary"]
assert isinstance(wallet_summary, pd.DataFrame)
assert len(wallet_summary) == 255
unique_currencies = wallet_summary["currency"].value_counts()
assert unique_currencies["BTC"] == 200
assert unique_currencies["UNITTEST"] == 55
@pytest.mark.parametrize("use_detail", [True, False])
def test_backtest_one_detail(default_conf_usdt, mocker, testdatadir, use_detail) -> None:
default_conf_usdt["use_exit_signal"] = False
default_conf_usdt["runmode"] = RunMode.BACKTEST
patch_exchange(mocker)
mocker.patch(f"{EXMS}.get_min_pair_stake_amount", return_value=0.00001)
mocker.patch(f"{EXMS}.get_max_pair_stake_amount", return_value=float("inf"))
mocker.patch(f"{EXMS}.get_pair_base_currency", lambda _, x: x.split("/")[0])
default_conf_usdt["unfilledtimeout"] = {
"entry": 11,
"exit": 30,
@@ -968,6 +980,12 @@ def test_backtest_one_detail(default_conf_usdt, mocker, testdatadir, use_detail)
)
assert late_entry > 0
wallet_summary = result["wallet_summary"]
assert isinstance(wallet_summary, pd.DataFrame)
assert len(wallet_summary) == 591 if use_detail else 597
unique_currencies = wallet_summary["currency"].value_counts()
assert unique_currencies["USDT"] == 576
assert unique_currencies["XRP"] == 15 if use_detail else 21
@pytest.mark.parametrize(