From 0f2c5478054e74b4d5c836a98f88b2a975262440 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 11 Dec 2018 20:26:53 +0100 Subject: [PATCH 1/3] Move fiat-convert to subfolder --- freqtrade/{ => rpc}/fiat_convert.py | 0 .../tests/{ => rpc}/test_fiat_convert.py | 19 +++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) rename freqtrade/{ => rpc}/fiat_convert.py (100%) rename freqtrade/tests/{ => rpc}/test_fiat_convert.py (91%) diff --git a/freqtrade/fiat_convert.py b/freqtrade/rpc/fiat_convert.py similarity index 100% rename from freqtrade/fiat_convert.py rename to freqtrade/rpc/fiat_convert.py diff --git a/freqtrade/tests/test_fiat_convert.py b/freqtrade/tests/rpc/test_fiat_convert.py similarity index 91% rename from freqtrade/tests/test_fiat_convert.py rename to freqtrade/tests/rpc/test_fiat_convert.py index 8fd3b66b4..7d857d2f1 100644 --- a/freqtrade/tests/test_fiat_convert.py +++ b/freqtrade/tests/rpc/test_fiat_convert.py @@ -7,7 +7,7 @@ from unittest.mock import MagicMock import pytest from requests.exceptions import RequestException -from freqtrade.fiat_convert import CryptoFiat, CryptoToFiatConverter +from freqtrade.rpc.fiat_convert import CryptoFiat, CryptoToFiatConverter from freqtrade.tests.conftest import log_has, patch_coinmarketcap @@ -81,16 +81,18 @@ def test_fiat_convert_find_price(mocker): assert fiat_convert.get_price(crypto_symbol='XRP', fiat_symbol='USD') == 0.0 - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=12345.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=12345.0) assert fiat_convert.get_price(crypto_symbol='BTC', fiat_symbol='USD') == 12345.0 assert fiat_convert.get_price(crypto_symbol='btc', fiat_symbol='usd') == 12345.0 - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=13000.2) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=13000.2) assert fiat_convert.get_price(crypto_symbol='BTC', fiat_symbol='EUR') == 13000.2 def test_fiat_convert_unsupported_crypto(mocker, caplog): - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._cryptomap', return_value=[]) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._cryptomap', return_value=[]) patch_coinmarketcap(mocker) fiat_convert = CryptoToFiatConverter() assert fiat_convert._find_price(crypto_symbol='CRYPTO_123', fiat_symbol='EUR') == 0.0 @@ -100,7 +102,8 @@ def test_fiat_convert_unsupported_crypto(mocker, caplog): def test_fiat_convert_get_price(mocker): patch_coinmarketcap(mocker) - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=28000.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=28000.0) fiat_convert = CryptoToFiatConverter() @@ -157,7 +160,7 @@ def test_fiat_init_network_exception(mocker): # Because CryptoToFiatConverter is a Singleton we reset the listings listmock = MagicMock(side_effect=RequestException) mocker.patch.multiple( - 'freqtrade.fiat_convert.Market', + 'freqtrade.rpc.fiat_convert.Market', listings=listmock, ) # with pytest.raises(RequestEsxception): @@ -187,7 +190,7 @@ def test_fiat_invalid_response(mocker, caplog): # Because CryptoToFiatConverter is a Singleton we reset the listings listmock = MagicMock(return_value="{'novalidjson':DEADBEEFf}") mocker.patch.multiple( - 'freqtrade.fiat_convert.Market', + 'freqtrade.rpc.fiat_convert.Market', listings=listmock, ) # with pytest.raises(RequestEsxception): @@ -203,7 +206,7 @@ def test_fiat_invalid_response(mocker, caplog): def test_convert_amount(mocker): patch_coinmarketcap(mocker) - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter.get_price', return_value=12345.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter.get_price', return_value=12345.0) fiat_convert = CryptoToFiatConverter() result = fiat_convert.convert_amount( From efc709501ae8329a9baf22d91f1cb4265f41e874 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 11 Dec 2018 20:27:30 +0100 Subject: [PATCH 2/3] move fiat-convert to rpc - adjust imports --- freqtrade/rpc/rpc.py | 2 +- freqtrade/rpc/telegram.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 6ca32e4be..e83d9d41b 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -14,9 +14,9 @@ from numpy import mean, nan_to_num, NAN from pandas import DataFrame from freqtrade import TemporaryError, DependencyException -from freqtrade.fiat_convert import CryptoToFiatConverter from freqtrade.misc import shorten_date from freqtrade.persistence import Trade +from freqtrade.rpc.fiat_convert import CryptoToFiatConverter from freqtrade.state import State from freqtrade.strategy.interface import SellType diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 56c58f2cc..be2498d78 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -12,8 +12,8 @@ from telegram.error import NetworkError, TelegramError from telegram.ext import CommandHandler, Updater from freqtrade.__init__ import __version__ -from freqtrade.fiat_convert import CryptoToFiatConverter from freqtrade.rpc import RPC, RPCException, RPCMessageType +from freqtrade.rpc.fiat_convert import CryptoToFiatConverter logger = logging.getLogger(__name__) From 81b4940eef6b9321684d95f40f10a0c0690d7dab Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 11 Dec 2018 20:27:54 +0100 Subject: [PATCH 3/3] Adjust tests to new fiat-convert location --- freqtrade/tests/conftest.py | 3 +-- freqtrade/tests/rpc/test_rpc.py | 11 ++++++----- freqtrade/tests/rpc/test_rpc_telegram.py | 9 ++++++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/freqtrade/tests/conftest.py b/freqtrade/tests/conftest.py index df1a1cdc4..1b03f1b19 100644 --- a/freqtrade/tests/conftest.py +++ b/freqtrade/tests/conftest.py @@ -82,7 +82,6 @@ def get_patched_freqtradebot(mocker, config) -> FreqtradeBot: :param config: Config to pass to the bot :return: None """ - # mocker.patch('freqtrade.fiat_convert.Market', {'price_usd': 12345.0}) patch_coinmarketcap(mocker, {'price_usd': 12345.0}) mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock()) mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock()) @@ -107,7 +106,7 @@ def patch_coinmarketcap(mocker, value: Optional[Dict[str, float]] = None) -> Non 'website_slug': 'ethereum'} ]}) mocker.patch.multiple( - 'freqtrade.fiat_convert.Market', + 'freqtrade.rpc.fiat_convert.Market', ticker=tickermock, listings=listmock, diff --git a/freqtrade/tests/rpc/test_rpc.py b/freqtrade/tests/rpc/test_rpc.py index 2b271af31..bb685cad5 100644 --- a/freqtrade/tests/rpc/test_rpc.py +++ b/freqtrade/tests/rpc/test_rpc.py @@ -8,10 +8,10 @@ import pytest from numpy import isnan from freqtrade import TemporaryError, DependencyException -from freqtrade.fiat_convert import CryptoToFiatConverter from freqtrade.freqtradebot import FreqtradeBot from freqtrade.persistence import Trade from freqtrade.rpc import RPC, RPCException +from freqtrade.rpc.fiat_convert import CryptoToFiatConverter from freqtrade.state import State from freqtrade.tests.test_freqtradebot import patch_get_signal from freqtrade.tests.conftest import patch_coinmarketcap, patch_exchange @@ -171,7 +171,7 @@ def test_rpc_daily_profit(default_conf, update, ticker, fee, def test_rpc_trade_statistics(default_conf, ticker, ticker_sell_up, fee, limit_buy_order, limit_sell_order, markets, mocker) -> None: mocker.patch.multiple( - 'freqtrade.fiat_convert.Market', + 'freqtrade.rpc.fiat_convert.Market', ticker=MagicMock(return_value={'price_usd': 15000.0}), ) patch_coinmarketcap(mocker) @@ -260,10 +260,11 @@ def test_rpc_trade_statistics_closed(mocker, default_conf, ticker, fee, markets, ticker_sell_up, limit_buy_order, limit_sell_order): patch_exchange(mocker) mocker.patch.multiple( - 'freqtrade.fiat_convert.Market', + 'freqtrade.rpc.fiat_convert.Market', ticker=MagicMock(return_value={'price_usd': 15000.0}), ) - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=15000.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=15000.0) mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock()) mocker.patch.multiple( 'freqtrade.exchange.Exchange', @@ -328,7 +329,7 @@ def test_rpc_balance_handle(default_conf, mocker): # ETH will be skipped due to mocked Error below mocker.patch.multiple( - 'freqtrade.fiat_convert.Market', + 'freqtrade.rpc.fiat_convert.Market', ticker=MagicMock(return_value={'price_usd': 15000.0}), ) patch_coinmarketcap(mocker) diff --git a/freqtrade/tests/rpc/test_rpc_telegram.py b/freqtrade/tests/rpc/test_rpc_telegram.py index cd4445a1e..686a92469 100644 --- a/freqtrade/tests/rpc/test_rpc_telegram.py +++ b/freqtrade/tests/rpc/test_rpc_telegram.py @@ -737,7 +737,8 @@ def test_forcesell_handle(default_conf, update, ticker, fee, def test_forcesell_down_handle(default_conf, update, ticker, fee, ticker_sell_down, markets, mocker) -> None: patch_coinmarketcap(mocker, value={'price_usd': 15000.0}) - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=15000.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=15000.0) rpc_mock = mocker.patch('freqtrade.rpc.telegram.Telegram.send_msg', MagicMock()) mocker.patch('freqtrade.rpc.telegram.Telegram._init', MagicMock()) mocker.patch.multiple( @@ -791,7 +792,8 @@ def test_forcesell_down_handle(default_conf, update, ticker, fee, def test_forcesell_all_handle(default_conf, update, ticker, fee, markets, mocker) -> None: patch_coinmarketcap(mocker, value={'price_usd': 15000.0}) patch_exchange(mocker) - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=15000.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=15000.0) rpc_mock = mocker.patch('freqtrade.rpc.telegram.Telegram.send_msg', MagicMock()) mocker.patch('freqtrade.rpc.telegram.Telegram._init', MagicMock()) mocker.patch('freqtrade.exchange.Exchange.get_pair_detail_url', MagicMock()) @@ -836,7 +838,8 @@ def test_forcesell_all_handle(default_conf, update, ticker, fee, markets, mocker def test_forcesell_handle_invalid(default_conf, update, mocker) -> None: patch_coinmarketcap(mocker, value={'price_usd': 15000.0}) - mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=15000.0) + mocker.patch('freqtrade.rpc.fiat_convert.CryptoToFiatConverter._find_price', + return_value=15000.0) msg_mock = MagicMock() mocker.patch.multiple( 'freqtrade.rpc.telegram.Telegram',