67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
# pragma pylint: disable=missing-docstring
|
|
import pytest
|
|
|
|
from freqtrade.exchange import Exchanges
|
|
from freqtrade.persistence import Trade
|
|
|
|
|
|
def test_update(limit_buy_order, limit_sell_order):
|
|
trade = Trade(
|
|
pair='BTC_ETH',
|
|
stake_amount=1.00,
|
|
fee=0.1,
|
|
exchange=Exchanges.BITTREX,
|
|
)
|
|
assert trade.open_order_id is None
|
|
assert trade.open_rate is None
|
|
assert trade.close_profit is None
|
|
assert trade.close_date is None
|
|
|
|
trade.open_order_id = 'something'
|
|
trade.update(limit_buy_order)
|
|
assert trade.open_order_id is None
|
|
assert trade.open_rate == 0.07256061
|
|
assert trade.close_profit is None
|
|
assert trade.close_date is None
|
|
|
|
trade.open_order_id = 'something'
|
|
trade.update(limit_sell_order)
|
|
assert trade.open_order_id is None
|
|
assert trade.open_rate == 0.07256061
|
|
assert trade.close_profit == 0.00546755
|
|
assert trade.close_date is not None
|
|
|
|
|
|
def test_update_open_order(limit_buy_order):
|
|
trade = Trade(
|
|
pair='BTC_ETH',
|
|
stake_amount=1.00,
|
|
fee=0.1,
|
|
exchange=Exchanges.BITTREX,
|
|
)
|
|
|
|
assert trade.open_order_id is None
|
|
assert trade.open_rate is None
|
|
assert trade.close_profit is None
|
|
assert trade.close_date is None
|
|
|
|
limit_buy_order['closed'] = False
|
|
trade.update(limit_buy_order)
|
|
|
|
assert trade.open_order_id is None
|
|
assert trade.open_rate is None
|
|
assert trade.close_profit is None
|
|
assert trade.close_date is None
|
|
|
|
|
|
def test_update_invalid_order(limit_buy_order):
|
|
trade = Trade(
|
|
pair='BTC_ETH',
|
|
stake_amount=1.00,
|
|
fee=0.1,
|
|
exchange=Exchanges.BITTREX,
|
|
)
|
|
limit_buy_order['type'] = 'invalid'
|
|
with pytest.raises(ValueError, match=r'Unknown order type'):
|
|
trade.update(limit_buy_order)
|