test: remove edge tests

This commit is contained in:
Matthias
2025-06-10 18:20:02 +02:00
parent c53c70d597
commit 301d85ef4f
6 changed files with 1 additions and 98 deletions

View File

@@ -297,24 +297,6 @@ def patch_whitelist(mocker, conf) -> None:
)
def patch_edge(mocker) -> None:
# "ETH/BTC",
# "LTC/BTC",
# "XRP/BTC",
# "NEO/BTC"
mocker.patch(
"freqtrade.edge.Edge._cached_pairs",
mocker.PropertyMock(
return_value={
"NEO/BTC": PairInfo(-0.20, 0.66, 3.71, 0.50, 1.71, 10, 25),
"LTC/BTC": PairInfo(-0.21, 0.66, 3.71, 0.50, 1.71, 11, 20),
}
),
)
mocker.patch("freqtrade.edge.Edge.calculate", MagicMock(return_value=True))
# Functions for recurrent object patching

View File

@@ -43,7 +43,6 @@ from tests.conftest import (
get_patched_worker,
log_has,
log_has_re,
patch_edge,
patch_exchange,
patch_get_signal,
patch_wallet,

View File

@@ -16,7 +16,6 @@ from tests.conftest import (
get_patched_freqtradebot,
log_has,
log_has_re,
patch_edge,
patch_exchange,
patch_get_signal,
patch_whitelist,

View File

@@ -18,12 +18,10 @@ from freqtrade.data.btanalysis import (
load_backtest_data,
load_backtest_stats,
)
from freqtrade.edge import PairInfo
from freqtrade.enums import ExitType
from freqtrade.optimize.optimize_reports import (
generate_backtest_stats,
generate_daily_stats,
generate_edge_table,
generate_pair_metrics,
generate_periodic_breakdown_stats,
generate_strategy_comparison,
@@ -646,15 +644,6 @@ def test_text_table_strategy(testdatadir, capsys):
)
def test_generate_edge_table(capsys):
results = {}
results["ETH/BTC"] = PairInfo(-0.01, 0.60, 2, 1, 3, 10, 60)
generate_edge_table(results)
text = capsys.readouterr().out
assert re.search(r".* ETH/BTC .*", text)
assert re.search(r".* Risk Reward Ratio .* Required Risk Reward .* Expectancy .*", text)
def test_generate_periodic_breakdown_stats(testdatadir):
filename = testdatadir / "backtest_results/backtest-result.json"
bt_data = load_backtest_data(filename).to_dict(orient="records")

View File

@@ -6,7 +6,6 @@ import pytest
from numpy import isnan
from sqlalchemy import select
from freqtrade.edge import PairInfo
from freqtrade.enums import SignalDirection, State, TradingMode
from freqtrade.exceptions import ExchangeError, InvalidOrderException, TemporaryError
from freqtrade.persistence import Order, Trade
@@ -1393,36 +1392,6 @@ def test_rpc_blacklist(mocker, default_conf) -> None:
assert isinstance(ret["errors"], dict)
def test_rpc_edge_disabled(mocker, default_conf) -> None:
mocker.patch("freqtrade.rpc.telegram.Telegram", MagicMock())
freqtradebot = get_patched_freqtradebot(mocker, default_conf)
rpc = RPC(freqtradebot)
with pytest.raises(RPCException, match=r"Edge is not enabled."):
rpc._rpc_edge()
def test_rpc_edge_enabled(mocker, edge_conf) -> None:
mocker.patch("freqtrade.rpc.telegram.Telegram", MagicMock())
mocker.patch(
"freqtrade.edge.Edge._cached_pairs",
mocker.PropertyMock(
return_value={
"E/F": PairInfo(-0.02, 0.66, 3.71, 0.50, 1.71, 10, 60),
}
),
)
freqtradebot = get_patched_freqtradebot(mocker, edge_conf)
rpc = RPC(freqtradebot)
ret = rpc._rpc_edge()
assert len(ret) == 1
assert ret[0]["Pair"] == "E/F"
assert ret[0]["Winrate"] == 0.66
assert ret[0]["Expectancy"] == 1.71
assert ret[0]["Stoploss"] == -0.02
def test_rpc_health(mocker, default_conf) -> None:
mocker.patch("freqtrade.rpc.telegram.Telegram", MagicMock())

View File

@@ -21,7 +21,6 @@ from telegram.error import BadRequest, NetworkError, TelegramError
from freqtrade import __version__
from freqtrade.constants import CANCEL_REASON
from freqtrade.edge import PairInfo
from freqtrade.enums import (
ExitType,
MarketDirection,
@@ -171,7 +170,7 @@ def test_telegram_init(default_conf, mocker, caplog) -> None:
"['reload_conf', 'reload_config'], ['show_conf', 'show_config'], "
"['pause', 'stopbuy', 'stopentry'], ['whitelist'], ['blacklist'], "
"['bl_delete', 'blacklist_delete'], "
"['logs'], ['edge'], ['health'], ['help'], ['version'], ['marketdir'], "
"['logs'], ['health'], ['help'], ['version'], ['marketdir'], "
"['order'], ['list_custom_data'], ['tg_info']]"
)
@@ -1952,40 +1951,6 @@ async def test_telegram_logs(default_conf, update, mocker) -> None:
assert msg_mock.call_count >= 2
async def test_edge_disabled(default_conf, update, mocker) -> None:
telegram, _, msg_mock = get_telegram_testobject(mocker, default_conf)
await telegram._edge(update=update, context=MagicMock())
assert msg_mock.call_count == 1
assert "Edge is not enabled." in msg_mock.call_args_list[0][0][0]
async def test_edge_enabled(edge_conf, update, mocker) -> None:
mocker.patch(
"freqtrade.edge.Edge._cached_pairs",
mocker.PropertyMock(
return_value={
"E/F": PairInfo(-0.01, 0.66, 3.71, 0.50, 1.71, 10, 60),
}
),
)
telegram, _, msg_mock = get_telegram_testobject(mocker, edge_conf)
await telegram._edge(update=update, context=MagicMock())
assert msg_mock.call_count == 1
assert "<b>Edge only validated following pairs:</b>\n<pre>" in msg_mock.call_args_list[0][0][0]
assert "Pair Winrate Expectancy Stoploss" in msg_mock.call_args_list[0][0][0]
msg_mock.reset_mock()
mocker.patch("freqtrade.edge.Edge._cached_pairs", mocker.PropertyMock(return_value={}))
await telegram._edge(update=update, context=MagicMock())
assert msg_mock.call_count == 1
assert "<b>Edge only validated following pairs:</b>" in msg_mock.call_args_list[0][0][0]
assert "Winrate" not in msg_mock.call_args_list[0][0][0]
@pytest.mark.parametrize(
"is_short,regex_pattern",
[(True, r"now[ ]*XRP\/BTC \(#3\) -1.00% \("), (False, r"now[ ]*XRP\/BTC \(#3\) 1.00% \(")],