def test_rpc_delete_trade(mocker, default_conf, fee, markets, caplog): mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock()) stoploss_mock = MagicMock() cancel_mock = MagicMock() mocker.patch.multiple( 'freqtrade.exchange.Exchange', markets=PropertyMock(return_value=markets), cancel_order=cancel_mock, cancel_stoploss_order=stoploss_mock, ) freqtradebot = get_patched_freqtradebot(mocker, default_conf) freqtradebot.strategy.order_types['stoploss_on_exchange'] = True create_mock_trades(fee) rpc = RPC(freqtradebot) with pytest.raises(RPCException, match='invalid argument'): rpc._rpc_delete('200') create_mock_trades(fee) trades = Trade.query.all() trades[1].stoploss_order_id = '1234' trades[2].stoploss_order_id = '1234' assert len(trades) > 2 res = rpc._rpc_delete('1') assert isinstance(res, dict) assert res['result'] == 'success' assert res['trade_id'] == '1' assert res['cancel_order_count'] == 1 assert cancel_mock.call_count == 1 assert stoploss_mock.call_count == 0 cancel_mock.reset_mock() stoploss_mock.reset_mock() res = rpc._rpc_delete('2') assert isinstance(res, dict) assert cancel_mock.call_count == 1 assert stoploss_mock.call_count == 1 assert res['cancel_order_count'] == 2 stoploss_mock = mocker.patch( 'freqtrade.exchange.Exchange.cancel_stoploss_order', side_effect=InvalidOrderException) res = rpc._rpc_delete('3') assert stoploss_mock.call_count == 1 stoploss_mock.reset_mock() cancel_mock = mocker.patch('freqtrade.exchange.Exchange.cancel_order', side_effect=InvalidOrderException) res = rpc._rpc_delete('4') assert cancel_mock.call_count == 1 assert stoploss_mock.call_count == 0
def trades_delete(tradeid: int, rpc: RPC = Depends(get_rpc)): return rpc._rpc_delete(tradeid)