convert start, stop and reload_conf to return a dict
This commit is contained in:
parent
446c621006
commit
913cb80a33
@ -2,7 +2,7 @@ import threading
|
|||||||
import logging
|
import logging
|
||||||
# import json
|
# import json
|
||||||
|
|
||||||
from flask import Flask, request
|
from flask import Flask, request, jsonify
|
||||||
# from flask_restful import Resource, Api
|
# from flask_restful import Resource, Api
|
||||||
from json import dumps
|
from json import dumps
|
||||||
from freqtrade.rpc.rpc import RPC, RPCException
|
from freqtrade.rpc.rpc import RPC, RPCException
|
||||||
@ -102,7 +102,7 @@ class ApiServerSuperWrap(RPC):
|
|||||||
Starts TradeThread
|
Starts TradeThread
|
||||||
"""
|
"""
|
||||||
msg = self._rpc_start()
|
msg = self._rpc_start()
|
||||||
return msg
|
return jsonify(msg)
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
"""
|
"""
|
||||||
@ -110,4 +110,4 @@ class ApiServerSuperWrap(RPC):
|
|||||||
Stops TradeThread
|
Stops TradeThread
|
||||||
"""
|
"""
|
||||||
msg = self._rpc_stop()
|
msg = self._rpc_stop()
|
||||||
return msg
|
return jsonify(msg)
|
||||||
|
@ -21,7 +21,7 @@ if len(argv) == 1:
|
|||||||
if len(argv) == 3 and argv[1] == "daily":
|
if len(argv) == 3 and argv[1] == "daily":
|
||||||
if str.isnumeric(argv[2]):
|
if str.isnumeric(argv[2]):
|
||||||
get_url = 'http://localhost:5002/daily?timescale=' + argv[2]
|
get_url = 'http://localhost:5002/daily?timescale=' + argv[2]
|
||||||
d=get(get_url).json()
|
d = get(get_url).json()
|
||||||
print(d)
|
print(d)
|
||||||
else:
|
else:
|
||||||
print("\nThe second argument to daily must be an integer, 1,2,3 etc")
|
print("\nThe second argument to daily must be an integer, 1,2,3 etc")
|
||||||
|
@ -26,7 +26,17 @@ class RPCException(Exception):
|
|||||||
|
|
||||||
raise RPCException('*Status:* `no active trade`')
|
raise RPCException('*Status:* `no active trade`')
|
||||||
"""
|
"""
|
||||||
pass
|
def __init__(self, message: str) -> None:
|
||||||
|
super().__init__(self)
|
||||||
|
self.message = message
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.message
|
||||||
|
|
||||||
|
def __json__(self):
|
||||||
|
return {
|
||||||
|
'msg': self.message
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class RPC(object):
|
class RPC(object):
|
||||||
@ -287,28 +297,27 @@ class RPC(object):
|
|||||||
value = fiat.convert_amount(total, 'BTC', symbol)
|
value = fiat.convert_amount(total, 'BTC', symbol)
|
||||||
return output, total, symbol, value
|
return output, total, symbol, value
|
||||||
|
|
||||||
def _rpc_start(self) -> str:
|
def _rpc_start(self) -> Dict[str, str]:
|
||||||
""" Handler for start """
|
""" Handler for start """
|
||||||
if self._freqtrade.state == State.RUNNING:
|
if self._freqtrade.state == State.RUNNING:
|
||||||
return '*Status:* `already running`'
|
return {'status': 'already running'}
|
||||||
|
|
||||||
self._freqtrade.state = State.RUNNING
|
self._freqtrade.state = State.RUNNING
|
||||||
return '`Starting trader ...`'
|
return {'status': 'starting trader ...'}
|
||||||
|
|
||||||
def _rpc_stop(self) -> str:
|
def _rpc_stop(self) -> Dict[str, str]:
|
||||||
""" Handler for stop """
|
""" Handler for stop """
|
||||||
if self._freqtrade.state == State.RUNNING:
|
if self._freqtrade.state == State.RUNNING:
|
||||||
self._freqtrade.state = State.STOPPED
|
self._freqtrade.state = State.STOPPED
|
||||||
return '`Stopping trader ...`'
|
return {'status': 'stopping trader ...'}
|
||||||
|
|
||||||
return '*Status:* `already stopped`'
|
return {'status': 'already stopped'}
|
||||||
|
|
||||||
def _rpc_reload_conf(self) -> str:
|
def _rpc_reload_conf(self) -> Dict[str, str]:
|
||||||
""" Handler for reload_conf. """
|
""" Handler for reload_conf. """
|
||||||
self._freqtrade.state = State.RELOAD_CONF
|
self._freqtrade.state = State.RELOAD_CONF
|
||||||
return '*Status:* `Reloading config ...`'
|
return {'status': 'reloading config ...'}
|
||||||
|
|
||||||
# FIX: no test for this!!!!
|
|
||||||
def _rpc_forcesell(self, trade_id) -> None:
|
def _rpc_forcesell(self, trade_id) -> None:
|
||||||
"""
|
"""
|
||||||
Handler for forcesell <id>.
|
Handler for forcesell <id>.
|
||||||
|
@ -266,7 +266,7 @@ class Telegram(RPC):
|
|||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
msg = self._rpc_start()
|
msg = self._rpc_start()
|
||||||
self._send_msg(msg, bot=bot)
|
self._send_msg('Status: `{status}`'.format(**msg), bot=bot)
|
||||||
|
|
||||||
@authorized_only
|
@authorized_only
|
||||||
def _stop(self, bot: Bot, update: Update) -> None:
|
def _stop(self, bot: Bot, update: Update) -> None:
|
||||||
@ -278,7 +278,7 @@ class Telegram(RPC):
|
|||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
msg = self._rpc_stop()
|
msg = self._rpc_stop()
|
||||||
self._send_msg(msg, bot=bot)
|
self._send_msg('Status: `{status}`'.format(**msg), bot=bot)
|
||||||
|
|
||||||
@authorized_only
|
@authorized_only
|
||||||
def _reload_conf(self, bot: Bot, update: Update) -> None:
|
def _reload_conf(self, bot: Bot, update: Update) -> None:
|
||||||
@ -290,7 +290,7 @@ class Telegram(RPC):
|
|||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
msg = self._rpc_reload_conf()
|
msg = self._rpc_reload_conf()
|
||||||
self._send_msg(msg, bot=bot)
|
self._send_msg('Status: `{status}`'.format(**msg), bot=bot)
|
||||||
|
|
||||||
@authorized_only
|
@authorized_only
|
||||||
def _forcesell(self, bot: Bot, update: Update) -> None:
|
def _forcesell(self, bot: Bot, update: Update) -> None:
|
||||||
|
@ -357,11 +357,11 @@ def test_rpc_start(mocker, default_conf) -> None:
|
|||||||
freqtradebot.state = State.STOPPED
|
freqtradebot.state = State.STOPPED
|
||||||
|
|
||||||
result = rpc._rpc_start()
|
result = rpc._rpc_start()
|
||||||
assert '`Starting trader ...`' in result
|
assert {'status': 'starting trader ...'} == result
|
||||||
assert freqtradebot.state == State.RUNNING
|
assert freqtradebot.state == State.RUNNING
|
||||||
|
|
||||||
result = rpc._rpc_start()
|
result = rpc._rpc_start()
|
||||||
assert '*Status:* `already running`' in result
|
assert {'status': 'already running'} == result
|
||||||
assert freqtradebot.state == State.RUNNING
|
assert freqtradebot.state == State.RUNNING
|
||||||
|
|
||||||
|
|
||||||
@ -383,11 +383,12 @@ def test_rpc_stop(mocker, default_conf) -> None:
|
|||||||
freqtradebot.state = State.RUNNING
|
freqtradebot.state = State.RUNNING
|
||||||
|
|
||||||
result = rpc._rpc_stop()
|
result = rpc._rpc_stop()
|
||||||
assert '`Stopping trader ...`' in result
|
assert {'status': 'stopping trader ...'} == result
|
||||||
assert freqtradebot.state == State.STOPPED
|
assert freqtradebot.state == State.STOPPED
|
||||||
|
|
||||||
result = rpc._rpc_stop()
|
result = rpc._rpc_stop()
|
||||||
assert '*Status:* `already stopped`' in result
|
|
||||||
|
assert {'status': 'already stopped'} == result
|
||||||
assert freqtradebot.state == State.STOPPED
|
assert freqtradebot.state == State.STOPPED
|
||||||
|
|
||||||
|
|
||||||
|
@ -663,7 +663,7 @@ def test_stop_handle(default_conf, update, mocker) -> None:
|
|||||||
telegram._stop(bot=MagicMock(), update=update)
|
telegram._stop(bot=MagicMock(), update=update)
|
||||||
assert freqtradebot.state == State.STOPPED
|
assert freqtradebot.state == State.STOPPED
|
||||||
assert msg_mock.call_count == 1
|
assert msg_mock.call_count == 1
|
||||||
assert 'Stopping trader' in msg_mock.call_args_list[0][0][0]
|
assert 'stopping trader' in msg_mock.call_args_list[0][0][0]
|
||||||
|
|
||||||
|
|
||||||
def test_stop_handle_already_stopped(default_conf, update, mocker) -> None:
|
def test_stop_handle_already_stopped(default_conf, update, mocker) -> None:
|
||||||
@ -707,7 +707,7 @@ def test_reload_conf_handle(default_conf, update, mocker) -> None:
|
|||||||
telegram._reload_conf(bot=MagicMock(), update=update)
|
telegram._reload_conf(bot=MagicMock(), update=update)
|
||||||
assert freqtradebot.state == State.RELOAD_CONF
|
assert freqtradebot.state == State.RELOAD_CONF
|
||||||
assert msg_mock.call_count == 1
|
assert msg_mock.call_count == 1
|
||||||
assert 'Reloading config' in msg_mock.call_args_list[0][0][0]
|
assert 'reloading config' in msg_mock.call_args_list[0][0][0]
|
||||||
|
|
||||||
|
|
||||||
def test_forcesell_handle(default_conf, update, ticker, fee,
|
def test_forcesell_handle(default_conf, update, ticker, fee,
|
||||||
|
Loading…
Reference in New Issue
Block a user