Exchange refactoring

This commit is contained in:
xsmile
2017-10-06 12:22:04 +02:00
parent 11f97ccf87
commit b9eb266236
13 changed files with 350 additions and 174 deletions

View File

@@ -44,10 +44,10 @@ def test_backtest(conf, pairs, mocker):
trades = []
mocker.patch.dict('freqtrade.main._CONF', conf)
for pair in pairs:
with open('tests/testdata/'+pair+'.json') as data_file:
with open('freqtrade/tests/testdata/'+pair+'.json') as data_file:
data = json.load(data_file)
mocker.patch('freqtrade.analyze.get_ticker', return_value=data)
mocker.patch('freqtrade.analyze.get_ticker_history', return_value=data)
mocker.patch('arrow.utcnow', return_value=arrow.get('2017-08-20T14:50:00'))
ticker = analyze_ticker(pair)
# for each buy point

View File

@@ -5,8 +5,7 @@ from unittest.mock import MagicMock, call
import pytest
from jsonschema import validate
from freqtrade import exchange
from freqtrade.exchange import validate_pairs
from freqtrade.exchange import Exchanges
from freqtrade.main import create_trade, handle_trade, close_trade_if_fulfilled, init, \
get_target_bid
from freqtrade.misc import CONF_SCHEMA
@@ -28,7 +27,8 @@ def conf():
"bid_strategy": {
"ask_last_balance": 0.0
},
"bittrex": {
"exchange": {
"name": "bittrex",
"enabled": True,
"key": "key",
"secret": "secret",
@@ -61,22 +61,22 @@ def test_create_trade(conf, mocker):
}),
buy=MagicMock(return_value='mocked_order_id'))
# Save state of current whitelist
whitelist = copy.deepcopy(conf['bittrex']['pair_whitelist'])
whitelist = copy.deepcopy(conf['exchange']['pair_whitelist'])
init(conf, 'sqlite://')
for pair in ['BTC_ETH', 'BTC_TKN', 'BTC_TRST', 'BTC_SWT']:
trade = create_trade(15.0, exchange.Exchange.BITTREX)
trade = create_trade(15.0)
Trade.session.add(trade)
Trade.session.flush()
assert trade is not None
assert trade.open_rate == 0.072661
assert trade.pair == pair
assert trade.exchange == exchange.Exchange.BITTREX
assert trade.exchange == Exchanges.BITTREX.name
assert trade.amount == 206.43811673387373
assert trade.stake_amount == 15.0
assert trade.is_open
assert trade.open_date is not None
assert whitelist == conf['bittrex']['pair_whitelist']
assert whitelist == conf['exchange']['pair_whitelist']
buy_signal.assert_has_calls(
[call('BTC_ETH'), call('BTC_TKN'), call('BTC_TRST'), call('BTC_SWT')]

View File

@@ -1,5 +1,5 @@
# pragma pylint: disable=missing-docstring
from freqtrade.exchange import Exchange
from freqtrade.exchange import Exchanges
from freqtrade.persistence import Trade
def test_exec_sell_order(mocker):
@@ -9,7 +9,7 @@ def test_exec_sell_order(mocker):
stake_amount=1.00,
open_rate=0.50,
amount=10.00,
exchange=Exchange.BITTREX,
exchange=Exchanges.BITTREX,
open_order_id='mocked'
)
profit = trade.exec_sell_order(1.00, 10.00)

View File

@@ -6,7 +6,6 @@ import pytest
from jsonschema import validate
from telegram import Bot, Update, Message, Chat
from freqtrade import exchange
from freqtrade.main import init, create_trade
from freqtrade.misc import update_state, State, get_state, CONF_SCHEMA
from freqtrade.persistence import Trade
@@ -28,7 +27,8 @@ def conf():
"bid_strategy": {
"ask_last_balance": 0.0
},
"bittrex": {
"exchange": {
"name": "bittrex",
"enabled": True,
"key": "key",
"secret": "secret",
@@ -73,7 +73,7 @@ def test_status_handle(conf, update, mocker):
init(conf, 'sqlite://')
# Create some test data
trade = create_trade(15.0, exchange.Exchange.BITTREX)
trade = create_trade(15.0)
assert trade
Trade.session.add(trade)
Trade.session.flush()
@@ -98,7 +98,7 @@ def test_profit_handle(conf, update, mocker):
init(conf, 'sqlite://')
# Create some test data
trade = create_trade(15.0, exchange.Exchange.BITTREX)
trade = create_trade(15.0)
assert trade
trade.close_rate = 0.07256061
trade.close_profit = 100.00
@@ -128,7 +128,7 @@ def test_forcesell_handle(conf, update, mocker):
init(conf, 'sqlite://')
# Create some test data
trade = create_trade(15.0, exchange.Exchange.BITTREX)
trade = create_trade(15.0)
assert trade
Trade.session.add(trade)
Trade.session.flush()
@@ -156,7 +156,7 @@ def test_performance_handle(conf, update, mocker):
init(conf, 'sqlite://')
# Create some test data
trade = create_trade(15.0, exchange.Exchange.BITTREX)
trade = create_trade(15.0)
assert trade
trade.close_rate = 0.07256061
trade.close_profit = 100.00