Display all trade info in buttons

First step to fix tests for changed forcesell code
This commit is contained in:
Ron Klinkien 2022-03-30 12:28:30 +02:00
parent 29d6725fb7
commit 3ed7f3f2df
2 changed files with 29 additions and 11 deletions

View File

@ -919,7 +919,7 @@ class Telegram(RPCHandler):
trades = [] trades = []
for trade in statlist: for trade in statlist:
trades.append(f"{trade[0]} {trade[1]} {trade[3]}") trades.append(f"{trade[0]} {trade[1]} {trade[2]} {trade[3]}")
trade_buttons = [ trade_buttons = [
InlineKeyboardButton(text=trade, callback_data=trade) for trade in trades] InlineKeyboardButton(text=trade, callback_data=trade) for trade in trades]
@ -994,7 +994,7 @@ class Telegram(RPCHandler):
buttons_aligned.append([InlineKeyboardButton(text='Cancel', callback_data='cancel')]) buttons_aligned.append([InlineKeyboardButton(text='Cancel', callback_data='cancel')])
self._send_msg(msg="Which pair?", self._send_msg(msg="Which pair?",
keyboard=buttons_aligned) keyboard=buttons_aligned)
@authorized_only @authorized_only
def _trades(self, update: Update, context: CallbackContext) -> None: def _trades(self, update: Update, context: CallbackContext) -> None:

View File

@ -1188,15 +1188,6 @@ def test_forcesell_handle_invalid(default_conf, update, mocker) -> None:
assert msg_mock.call_count == 1 assert msg_mock.call_count == 1
assert 'not running' in msg_mock.call_args_list[0][0][0] assert 'not running' in msg_mock.call_args_list[0][0][0]
# No argument
msg_mock.reset_mock()
freqtradebot.state = State.RUNNING
context = MagicMock()
context.args = []
telegram._forcesell(update=update, context=context)
assert msg_mock.call_count == 1
assert "You must specify a trade-id or 'all'." in msg_mock.call_args_list[0][0][0]
# Invalid argument # Invalid argument
msg_mock.reset_mock() msg_mock.reset_mock()
freqtradebot.state = State.RUNNING freqtradebot.state = State.RUNNING
@ -1208,6 +1199,33 @@ def test_forcesell_handle_invalid(default_conf, update, mocker) -> None:
assert 'invalid argument' in msg_mock.call_args_list[0][0][0] assert 'invalid argument' in msg_mock.call_args_list[0][0][0]
def test_forcesell_no_tradeid(default_conf, update, mocker) -> None:
fsell_mock = MagicMock(return_value=None)
mocker.patch('freqtrade.rpc.RPC._rpc_forcesell', fsell_mock)
telegram, freqtradebot, msg_mock = get_telegram_testobject(mocker, default_conf)
patch_get_signal(freqtradebot)
context = MagicMock()
context.args = []
telegram._forcesell(update=update, context=context)
assert fsell_mock.call_count == 0
assert msg_mock.call_count == 1
assert msg_mock.call_args_list[0][1]['msg'] == 'Which trade?'
# assert msg_mock.call_args_list[0][1]['callback_query_handler'] == 'forcesell'
keyboard = msg_mock.call_args_list[0][1]['keyboard']
# One additional button - cancel
assert reduce(lambda acc, x: acc + len(x), keyboard, 0) == 5
update = MagicMock()
update.callback_query = MagicMock()
update.callback_query.data = '1 XRP/USDT 1h 2.20% (1.20)'
telegram._forcsell_inline(update, None)
assert fsell_mock.call_count == 1
def test_forcebuy_handle(default_conf, update, mocker) -> None: def test_forcebuy_handle(default_conf, update, mocker) -> None:
mocker.patch('freqtrade.rpc.rpc.CryptoToFiatConverter._find_price', return_value=15000.0) mocker.patch('freqtrade.rpc.rpc.CryptoToFiatConverter._find_price', return_value=15000.0)