feat: support /profit long, too

This commit is contained in:
Matthias
2025-07-17 07:20:15 +02:00
parent 7c4c789711
commit 78124cd025
2 changed files with 24 additions and 2 deletions

View File

@@ -191,8 +191,8 @@ class Telegram(RPCHandler):
r"/mix_tags",
r"/daily$",
r"/daily \d+$",
r"/profit$",
r"/profit \d+",
r"/profit([_ ]long|[_ ]short)?$",
r"/profit([_ ]long|[_ ]short)? \d+$",
r"/stats$",
r"/count$",
r"/locks$",
@@ -1126,6 +1126,11 @@ class Telegram(RPCHandler):
timescale = None
try:
if context.args:
if not direction:
arg = context.args[0].lower()
if arg in ("short", "long"):
direction = arg
context.args.pop(0) # Remove direction from args
timescale = int(context.args[0]) - 1
today_start = datetime.combine(date.today(), datetime.min.time())
start_date = today_start - timedelta(days=timescale)

View File

@@ -3006,11 +3006,28 @@ async def test_telegram_profit_long_short_handle(
assert msg_mock.call_count == 1
assert "No long trades yet." in msg_mock.call_args_list[0][0][0]
msg_mock.reset_mock()
# Test support with "/profit long"
context = MagicMock()
context.args = ["long"]
await telegram._profit(update=update, context=context)
assert msg_mock.call_count == 1
assert "No long trades yet." in msg_mock.call_args_list[0][0][0]
msg_mock.reset_mock()
await telegram._profit_short(update=update, context=MagicMock())
assert msg_mock.call_count == 1
assert "No short trades yet." in msg_mock.call_args_list[0][0][0]
msg_mock.reset_mock()
# Test support with "/profit short"
context = MagicMock()
context.args = ["short"]
await telegram._profit(update=update, context=context)
assert msg_mock.call_count == 1
assert "No short trades yet." in msg_mock.call_args_list[0][0][0]
msg_mock.reset_mock()
# When there are trades
create_mock_trades_usdt(fee)