From 12e81080159343025717803a2ec3a5c1d8d2fc0f Mon Sep 17 00:00:00 2001 From: misagh Date: Tue, 15 Jan 2019 15:36:41 +0100 Subject: [PATCH] checking params of cancel order and stop loss order --- freqtrade/freqtradebot.py | 8 +++++--- freqtrade/tests/test_freqtradebot.py | 15 ++++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 477141782..23e1e422b 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -657,9 +657,11 @@ class FreqtradeBot(object): # the stoploss on exchange checked previously is not hit but # it is too late and too risky to cancel the previous stoploss if trade.stop_loss > self.exchange.get_ticker(trade.pair)['bid']: - logger.info('stoploss on exchange update: too risky to update stoploss as ' - 'current best bid price (%s) is higher than stoploss value (%s)', - self.exchange.get_ticker(trade.pair)['bid'], trade.stop_loss) + logger.warning( + 'stoploss on exchange update: too risky to update stoploss as ' + 'current best bid price (%s) is higher than stoploss value (%s).', + self.exchange.get_ticker(trade.pair)['bid'], trade.stop_loss + ) return result if trade.stop_loss > order['info']['stopPrice']: diff --git a/freqtrade/tests/test_freqtradebot.py b/freqtrade/tests/test_freqtradebot.py index 40f5f3327..d0a708865 100644 --- a/freqtrade/tests/test_freqtradebot.py +++ b/freqtrade/tests/test_freqtradebot.py @@ -1082,13 +1082,18 @@ def test_handle_stoploss_on_exchange_trailing(mocker, default_conf, fee, caplog, assert freqtrade.handle_trade(trade) is False assert trade.stop_loss == 0.00002344 * 0.95 - mocker.patch('freqtrade.exchange.Exchange.cancel_order', MagicMock(return_value={ - "orderId": 100, - "status": "CANCELED", - })) + cancel_order_mock = MagicMock() + stoploss_order_mock = MagicMock() + mocker.patch('freqtrade.exchange.Exchange.cancel_order', cancel_order_mock) + mocker.patch('freqtrade.exchange.Exchange.stoploss_limit', stoploss_order_mock) assert freqtrade.handle_stoploss_on_exchange(trade) is False - assert freqtrade.exchange.cancel_order.call_count == 1 + + cancel_order_mock.assert_called_once_with(100, 'ETH/BTC') + stoploss_order_mock.assert_called_once_with(amount=85.25149190110828, + pair='ETH/BTC', + rate=0.00002344 * 0.95 * 0.99, + stop_price=0.00002344 * 0.95) def test_process_maybe_execute_buy(mocker, default_conf) -> None: