From 054267a025856e53dd9995b8e19e38656b9ec34c Mon Sep 17 00:00:00 2001 From: Gerald Lonlas Date: Sat, 16 Dec 2017 14:29:24 -0800 Subject: [PATCH] Add mock to improve backtesting tests --- freqtrade/optimize/__init__.py | 1 - freqtrade/tests/conftest.py | 33 ++++++++++++++++++++ freqtrade/tests/test_optimize_backtesting.py | 11 +++++-- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/freqtrade/optimize/__init__.py b/freqtrade/optimize/__init__.py index 6880f709d..dccc18093 100644 --- a/freqtrade/optimize/__init__.py +++ b/freqtrade/optimize/__init__.py @@ -4,7 +4,6 @@ import logging import json import os from typing import Optional, List, Dict -import time from freqtrade.exchange import get_ticker_history from pandas import DataFrame diff --git a/freqtrade/tests/conftest.py b/freqtrade/tests/conftest.py index f2a9362ec..c711f3953 100644 --- a/freqtrade/tests/conftest.py +++ b/freqtrade/tests/conftest.py @@ -123,3 +123,36 @@ def limit_sell_order(): 'remaining': 0.0, 'closed': datetime.utcnow(), } + + +@pytest.fixture +def ticker_history(): + return [ + { + "O": 8.794e-05, + "H": 8.948e-05, + "L": 8.794e-05, + "C": 8.88e-05, + "V": 991.09056638, + "T": "2017-11-26T08:50:00", + "BV": 0.0877869 + }, + { + "O": 8.88e-05, + "H": 8.942e-05, + "L": 8.88e-05, + "C": 8.893e-05, + "V": 658.77935965, + "T": "2017-11-26T08:55:00", + "BV": 0.05874751 + }, + { + "O": 8.891e-05, + "H": 8.893e-05, + "L": 8.875e-05, + "C": 8.877e-05, + "V": 7920.73570705, + "T": "2017-11-26T09:00:00", + "BV": 0.7039405 + } + ] \ No newline at end of file diff --git a/freqtrade/tests/test_optimize_backtesting.py b/freqtrade/tests/test_optimize_backtesting.py index fd4630fbb..4ae625c02 100644 --- a/freqtrade/tests/test_optimize_backtesting.py +++ b/freqtrade/tests/test_optimize_backtesting.py @@ -1,5 +1,6 @@ # pragma pylint: disable=missing-docstring,W0212 +from unittest.mock import MagicMock from freqtrade import exchange, optimize from freqtrade.exchange import Bittrex @@ -28,8 +29,10 @@ def test_1min_ticker_interval(default_conf, mocker): results = backtest(default_conf, optimize.preprocess(data), 1, True) assert len(results) > 0 -def test_backtest_with_new_pair(default_conf, mocker): +def test_backtest_with_new_pair(default_conf, ticker_history, mocker): + mocker.patch('freqtrade.optimize.get_ticker_history', return_value=ticker_history) mocker.patch.dict('freqtrade.main._CONF', default_conf) + exchange._API = Bittrex({'key': '', 'secret': ''}) optimize.load_data(ticker_interval=1, pairs=['BTC_MEME']) @@ -45,7 +48,8 @@ def test_testdata_path(): assert str('freqtrade/optimize/../tests/testdata') in testdata_path() -def test_download_pairs(default_conf, mocker): +def test_download_pairs(default_conf, ticker_history, mocker): + mocker.patch('freqtrade.optimize.__init__.get_ticker_history', return_value=ticker_history) mocker.patch.dict('freqtrade.main._CONF', default_conf) exchange._API = Bittrex({'key': '', 'secret': ''}) @@ -75,7 +79,8 @@ def test_download_pairs(default_conf, mocker): os.remove(file2_5) -def test_download_backtesting_testdata(default_conf, mocker): +def test_download_backtesting_testdata(default_conf, ticker_history, mocker): + mocker.patch('freqtrade.optimize.__init__.get_ticker_history', return_value=ticker_history) mocker.patch.dict('freqtrade.main._CONF', default_conf) exchange._API = Bittrex({'key': '', 'secret': ''})