diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 66583fa53..153be1e25 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -527,7 +527,8 @@ class Telegram(RPC): f'Profit ({stake_cur})', ], tablefmt='simple') - message = f'{nrecent} recent trades:\n
{trades_tab}'
+ message = (f"{min(trades['trades_count'], nrecent)} recent trades:\n"
+ + (f"{trades_tab}" if trades['trades_count'] > 0 else ''))
self._send_msg(message, parse_mode=ParseMode.HTML)
except RPCException as e:
self._send_msg(str(e))
diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py
index 1ea211584..f011b631d 100644
--- a/tests/rpc/test_rpc_telegram.py
+++ b/tests/rpc/test_rpc_telegram.py
@@ -21,8 +21,9 @@ from freqtrade.rpc import RPCMessageType
from freqtrade.rpc.telegram import Telegram, authorized_only
from freqtrade.state import State
from freqtrade.strategy.interface import SellType
-from tests.conftest import (get_patched_freqtradebot, log_has, patch_exchange,
- patch_get_signal, patch_whitelist)
+from tests.conftest import (create_mock_trades, get_patched_freqtradebot,
+ log_has, patch_exchange, patch_get_signal,
+ patch_whitelist)
class DummyCls(Telegram):
@@ -1143,6 +1144,36 @@ def test_edge_enabled(edge_conf, update, mocker) -> None:
assert 'Pair Winrate Expectancy Stoploss' in msg_mock.call_args_list[0][0][0]
+def test_telegram_trades(mocker, update, default_conf, fee):
+ msg_mock = MagicMock()
+ mocker.patch.multiple(
+ 'freqtrade.rpc.telegram.Telegram',
+ _init=MagicMock(),
+ _send_msg=msg_mock
+ )
+
+ freqtradebot = get_patched_freqtradebot(mocker, default_conf)
+ telegram = Telegram(freqtradebot)
+ context = MagicMock()
+ context.args = []
+
+ telegram._trades(update=update, context=context)
+ assert "0 recent trades:" in msg_mock.call_args_list[0][0][0]
+ assert "" not in msg_mock.call_args_list[0][0][0]
+
+ msg_mock.reset_mock()
+ create_mock_trades(fee)
+
+ context = MagicMock()
+ context.args = [5]
+ telegram._trades(update=update, context=context)
+ msg_mock.call_count == 1
+ assert "3 recent trades:" in msg_mock.call_args_list[0][0][0]
+ assert "Profit (" in msg_mock.call_args_list[0][0][0]
+ assert "Open Date" in msg_mock.call_args_list[0][0][0]
+ assert "" in msg_mock.call_args_list[0][0][0]
+
+
def test_help_handle(default_conf, update, mocker) -> None:
msg_mock = MagicMock()
mocker.patch.multiple(