From f7a27c156cfdf8c8111a8545d897e9843077c557 Mon Sep 17 00:00:00 2001 From: gcarq Date: Thu, 9 Nov 2017 23:51:32 +0100 Subject: [PATCH] add /version command handler --- freqtrade/rpc/telegram.py | 16 +++++++++++++++- freqtrade/tests/test_telegram.py | 18 ++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 0ad33f121..a3d700b7e 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -11,7 +11,7 @@ from telegram import ParseMode, Bot, Update from telegram.error import NetworkError from telegram.ext import CommandHandler, Updater -from freqtrade import exchange +from freqtrade import exchange, __version__ from freqtrade.misc import get_state, State, update_state from freqtrade.persistence import Trade @@ -51,6 +51,7 @@ def init(config: dict) -> None: CommandHandler('performance', _performance), CommandHandler('count', _count), CommandHandler('help', _help), + CommandHandler('version', _version), ] for handle in handles: _UPDATER.dispatcher.add_handler(handle) @@ -430,10 +431,23 @@ def _help(bot: Bot, update: Update) -> None: */count:* `Show number of trades running compared to allowed number of trades` */balance:* `Show account balance per currency` */help:* `This help message` +*/version:* `Show version` """ send_msg(message, bot=bot) +@authorized_only +def _version(bot: Bot, update: Update) -> None: + """ + Handler for /version. + Show version information + :param bot: telegram bot + :param update: message update + :return: None + """ + send_msg('*Version:* `{}`'.format(__version__), bot=bot) + + def shorten_date(date): """ Trim the date so it fits on small screens diff --git a/freqtrade/tests/test_telegram.py b/freqtrade/tests/test_telegram.py index 5e8c9a3e8..795901ced 100644 --- a/freqtrade/tests/test_telegram.py +++ b/freqtrade/tests/test_telegram.py @@ -9,14 +9,15 @@ from sqlalchemy import create_engine from telegram import Update, Message, Chat from telegram.error import NetworkError +from freqtrade import __version__ from freqtrade.main import init, create_trade from freqtrade.misc import update_state, State, get_state from freqtrade.persistence import Trade from freqtrade.rpc import telegram from freqtrade.rpc.telegram import ( _status, _status_table, _profit, _forcesell, _performance, _count, _start, _stop, _balance, - authorized_only, _help, is_enabled, send_msg -) + authorized_only, _help, is_enabled, send_msg, + _version) def test_is_enabled(default_conf, mocker): @@ -498,6 +499,19 @@ def test_help_handle(default_conf, update, mocker): assert '*/help:* `This help message`' in msg_mock.call_args_list[0][0][0] +def test_version_handle(default_conf, update, mocker): + mocker.patch.dict('freqtrade.main._CONF', default_conf) + msg_mock = MagicMock() + mocker.patch.multiple('freqtrade.main.telegram', + _CONF=default_conf, + init=MagicMock(), + send_msg=msg_mock) + + _version(bot=MagicMock(), update=update) + assert msg_mock.call_count == 1 + assert '*Version:* `{}`'.format(__version__) in msg_mock.call_args_list[0][0][0] + + def test_send_msg(default_conf, mocker): mocker.patch.dict('freqtrade.main._CONF', default_conf) mocker.patch.multiple('freqtrade.main.telegram',