remove Telegram.is_enabled() because RPCManager manages lifecycles
This commit is contained in:
parent
3787dad212
commit
34e10a145c
@ -80,12 +80,7 @@ class Telegram(RPC):
|
|||||||
Initializes this module with the given config,
|
Initializes this module with the given config,
|
||||||
registers all known command handlers
|
registers all known command handlers
|
||||||
and starts polling for message updates
|
and starts polling for message updates
|
||||||
:param config: config to use
|
|
||||||
:return: None
|
|
||||||
"""
|
"""
|
||||||
if not self.is_enabled():
|
|
||||||
return
|
|
||||||
|
|
||||||
self._updater = Updater(token=self._config['telegram']['token'], workers=0)
|
self._updater = Updater(token=self._config['telegram']['token'], workers=0)
|
||||||
|
|
||||||
# Register command handler and start telegram message polling
|
# Register command handler and start telegram message polling
|
||||||
@ -121,21 +116,12 @@ class Telegram(RPC):
|
|||||||
Stops all running telegram threads.
|
Stops all running telegram threads.
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
if not self.is_enabled():
|
|
||||||
return
|
|
||||||
|
|
||||||
self._updater.stop()
|
self._updater.stop()
|
||||||
|
|
||||||
def send_msg(self, msg: str) -> None:
|
def send_msg(self, msg: str) -> None:
|
||||||
""" Send a message to telegram channel """
|
""" Send a message to telegram channel """
|
||||||
self._send_msg(msg)
|
self._send_msg(msg)
|
||||||
|
|
||||||
def is_enabled(self) -> bool:
|
|
||||||
"""
|
|
||||||
Returns True if the telegram module is activated, False otherwise
|
|
||||||
"""
|
|
||||||
return bool(self._config.get('telegram', {}).get('enabled', False))
|
|
||||||
|
|
||||||
@authorized_only
|
@authorized_only
|
||||||
def _status(self, bot: Bot, update: Update) -> None:
|
def _status(self, bot: Bot, update: Update) -> None:
|
||||||
"""
|
"""
|
||||||
@ -418,9 +404,6 @@ class Telegram(RPC):
|
|||||||
:param parse_mode: telegram parse mode
|
:param parse_mode: telegram parse mode
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
if not self.is_enabled():
|
|
||||||
return
|
|
||||||
|
|
||||||
bot = bot or self._updater.bot
|
bot = bot or self._updater.bot
|
||||||
|
|
||||||
keyboard = [['/daily', '/profit', '/balance'],
|
keyboard = [['/daily', '/profit', '/balance'],
|
||||||
|
@ -32,6 +32,9 @@ class DummyCls(Telegram):
|
|||||||
super().__init__(freqtrade)
|
super().__init__(freqtrade)
|
||||||
self.state = {'called': False}
|
self.state = {'called': False}
|
||||||
|
|
||||||
|
def _init(self):
|
||||||
|
pass
|
||||||
|
|
||||||
@authorized_only
|
@authorized_only
|
||||||
def dummy_handler(self, *args, **kwargs) -> None:
|
def dummy_handler(self, *args, **kwargs) -> None:
|
||||||
"""
|
"""
|
||||||
@ -78,21 +81,6 @@ def test_init(default_conf, mocker, caplog) -> None:
|
|||||||
assert log_has(message_str, caplog.record_tuples)
|
assert log_has(message_str, caplog.record_tuples)
|
||||||
|
|
||||||
|
|
||||||
def test_init_disabled(default_conf, mocker, caplog) -> None:
|
|
||||||
"""
|
|
||||||
Test _init() method when Telegram is disabled
|
|
||||||
"""
|
|
||||||
conf = deepcopy(default_conf)
|
|
||||||
conf['telegram']['enabled'] = False
|
|
||||||
Telegram(get_patched_freqtradebot(mocker, conf))
|
|
||||||
|
|
||||||
message_str = "rpc.telegram is listening for following commands: [['status'], ['profit'], " \
|
|
||||||
"['balance'], ['start'], ['stop'], ['forcesell'], ['performance'], ['daily'], " \
|
|
||||||
"['count'], ['help'], ['version']]"
|
|
||||||
|
|
||||||
assert not log_has(message_str, caplog.record_tuples)
|
|
||||||
|
|
||||||
|
|
||||||
def test_cleanup(default_conf, mocker) -> None:
|
def test_cleanup(default_conf, mocker) -> None:
|
||||||
"""
|
"""
|
||||||
Test cleanup() method
|
Test cleanup() method
|
||||||
@ -101,44 +89,11 @@ def test_cleanup(default_conf, mocker) -> None:
|
|||||||
updater_mock.stop = MagicMock()
|
updater_mock.stop = MagicMock()
|
||||||
mocker.patch('freqtrade.rpc.telegram.Updater', updater_mock)
|
mocker.patch('freqtrade.rpc.telegram.Updater', updater_mock)
|
||||||
|
|
||||||
# not enabled
|
telegram = Telegram(get_patched_freqtradebot(mocker, default_conf))
|
||||||
conf = deepcopy(default_conf)
|
|
||||||
conf['telegram']['enabled'] = False
|
|
||||||
telegram = Telegram(get_patched_freqtradebot(mocker, conf))
|
|
||||||
telegram.cleanup()
|
|
||||||
assert telegram._updater is None
|
|
||||||
assert updater_mock.call_count == 0
|
|
||||||
assert not hasattr(telegram._updater, 'stop')
|
|
||||||
assert updater_mock.stop.call_count == 0
|
|
||||||
|
|
||||||
# enabled
|
|
||||||
conf['telegram']['enabled'] = True
|
|
||||||
telegram = Telegram(get_patched_freqtradebot(mocker, conf))
|
|
||||||
telegram.cleanup()
|
telegram.cleanup()
|
||||||
assert telegram._updater.stop.call_count == 1
|
assert telegram._updater.stop.call_count == 1
|
||||||
|
|
||||||
|
|
||||||
def test_is_enabled(default_conf, mocker) -> None:
|
|
||||||
"""
|
|
||||||
Test is_enabled() method
|
|
||||||
"""
|
|
||||||
mocker.patch('freqtrade.rpc.telegram.Updater', MagicMock())
|
|
||||||
|
|
||||||
telegram = Telegram(get_patched_freqtradebot(mocker, default_conf))
|
|
||||||
assert telegram.is_enabled()
|
|
||||||
|
|
||||||
|
|
||||||
def test_is_not_enabled(default_conf, mocker) -> None:
|
|
||||||
"""
|
|
||||||
Test is_enabled() method
|
|
||||||
"""
|
|
||||||
conf = deepcopy(default_conf)
|
|
||||||
conf['telegram']['enabled'] = False
|
|
||||||
telegram = Telegram(get_patched_freqtradebot(mocker, conf))
|
|
||||||
|
|
||||||
assert not telegram.is_enabled()
|
|
||||||
|
|
||||||
|
|
||||||
def test_authorized_only(default_conf, mocker, caplog) -> None:
|
def test_authorized_only(default_conf, mocker, caplog) -> None:
|
||||||
"""
|
"""
|
||||||
Test authorized_only() method when we are authorized
|
Test authorized_only() method when we are authorized
|
||||||
@ -1087,11 +1042,6 @@ def test_send_msg(default_conf, mocker) -> None:
|
|||||||
freqtradebot = FreqtradeBot(conf)
|
freqtradebot = FreqtradeBot(conf)
|
||||||
telegram = Telegram(freqtradebot)
|
telegram = Telegram(freqtradebot)
|
||||||
|
|
||||||
telegram._config['telegram']['enabled'] = False
|
|
||||||
telegram._send_msg('test', bot)
|
|
||||||
assert not bot.method_calls
|
|
||||||
bot.reset_mock()
|
|
||||||
|
|
||||||
telegram._config['telegram']['enabled'] = True
|
telegram._config['telegram']['enabled'] = True
|
||||||
telegram._send_msg('test', bot)
|
telegram._send_msg('test', bot)
|
||||||
assert len(bot.method_calls) == 1
|
assert len(bot.method_calls) == 1
|
||||||
|
Loading…
Reference in New Issue
Block a user