+ order.cancel()
+ self.m.ccxt.cancel_order.assert_called_with(42)
+ fetch.assert_called_once_with()
+ self.m.report.log_debug_action.assert_not_called()
+
+ with self.subTest(exception=True):
+ self.m.ccxt.cancel_order.side_effect = portfolio.OrderNotFound
+ order = portfolio.Order("buy", portfolio.Amount("ETH", 10),
+ D("0.1"), "BTC", "long", self.m, "trade")
+ order.status = "open"
+ order.id = 42
+ order.cancel()
+ self.m.ccxt.cancel_order.assert_called_with(42)
+ self.m.report.log_error.assert_called_once()
+
+ self.m.reset_mock()
+ with self.subTest(id=None):
+ self.m.ccxt.cancel_order.side_effect = portfolio.OrderNotFound
+ order = portfolio.Order("buy", portfolio.Amount("ETH", 10),
+ D("0.1"), "BTC", "long", self.m, "trade")
+ order.status = "open"
+ order.cancel()
+ self.m.ccxt.cancel_order.assert_not_called()
+
+ self.m.reset_mock()
+ with self.subTest(open=False):
+ self.m.ccxt.cancel_order.side_effect = portfolio.OrderNotFound
+ order = portfolio.Order("buy", portfolio.Amount("ETH", 10),
+ D("0.1"), "BTC", "long", self.m, "trade")
+ order.status = "closed"
+ order.cancel()
+ self.m.ccxt.cancel_order.assert_not_called()