mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-11-29 00:23:07 +00:00
test: remove edge tests
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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())
|
||||
|
||||
|
||||
@@ -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% \(")],
|
||||
|
||||
Reference in New Issue
Block a user