Fix order_by in trades command

This commit is contained in:
Th0masL 2021-03-08 23:21:56 +02:00
parent 61ec7a309b
commit 37e6006169
3 changed files with 10 additions and 7 deletions

View File

@ -289,9 +289,10 @@ class RPC:
""" Returns the X last trades """ """ Returns the X last trades """
if limit > 0: if limit > 0:
trades = Trade.get_trades([Trade.is_open.is_(False)]).order_by( trades = Trade.get_trades([Trade.is_open.is_(False)]).order_by(
Trade.id.desc()).limit(limit) Trade.close_date.desc()).limit(limit)
else: else:
trades = Trade.get_trades([Trade.is_open.is_(False)]).order_by(Trade.id.desc()).all() trades = Trade.get_trades([Trade.is_open.is_(False)]).order_by(
Trade.close_date.desc()).all()
output = [trade.to_json() for trade in trades] output = [trade.to_json() for trade in trades]

View File

@ -637,13 +637,13 @@ class Telegram(RPCHandler):
nrecent nrecent
) )
trades_tab = tabulate( trades_tab = tabulate(
[[arrow.get(trade['open_date']).humanize(), [[arrow.get(trade['close_date']).humanize(),
trade['pair'], trade['pair'] + " (#" + str(trade['trade_id']) + ")",
f"{(100 * trade['close_profit']):.2f}% ({trade['close_profit_abs']})"] f"{(100 * trade['close_profit']):.2f}% ({trade['close_profit_abs']})"]
for trade in trades['trades']], for trade in trades['trades']],
headers=[ headers=[
'Open Date', 'Close Date',
'Pair', 'Pair (ID)',
f'Profit ({stake_cur})', f'Profit ({stake_cur})',
], ],
tablefmt='simple') tablefmt='simple')

View File

@ -1128,8 +1128,10 @@ def test_telegram_trades(mocker, update, default_conf, fee):
msg_mock.call_count == 1 msg_mock.call_count == 1
assert "2 recent trades</b>:" in msg_mock.call_args_list[0][0][0] assert "2 recent trades</b>:" in msg_mock.call_args_list[0][0][0]
assert "Profit (" 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 "Close Date" in msg_mock.call_args_list[0][0][0]
assert "<pre>" in msg_mock.call_args_list[0][0][0] assert "<pre>" in msg_mock.call_args_list[0][0][0]
assert bool(re.search("just now[ ]*XRP\\/BTC \\(#3\\) 1.00% \\(None\\)",
msg_mock.call_args_list[0][0][0]))
def test_telegram_delete_trade(mocker, update, default_conf, fee): def test_telegram_delete_trade(mocker, update, default_conf, fee):