portfolio.Computation.compute_value("foo", "bid", compute_value="test")
compute.assert_called_with("foo", "bid")
+ def test_eat_several(self):
+ self.m.ccxt.fetch_nth_order_book.return_value = D("0.00001275")
+
+ self.assertEqual(D("0.00001275"), portfolio.Computation.eat_several(self.m)({ "symbol": "BTC/HUC" }, "ask"))
+
+
@unittest.skipUnless("unit" in limits, "Unit skipped")
class TradeTest(WebMockTestCase):
self.assertTrue(trade.is_fullfiled)
- order1.filled_amount.assert_called_with(in_base_currency=True)
- order2.filled_amount.assert_called_with(in_base_currency=True)
- order3.filled_amount.assert_called_with(in_base_currency=True)
+ order1.filled_amount.assert_called_with(in_base_currency=True, refetch=True)
+ order2.filled_amount.assert_called_with(in_base_currency=True, refetch=True)
+ order3.filled_amount.assert_called_with(in_base_currency=True, refetch=True)
with self.subTest(inverted=True):
value_from = portfolio.Amount("BTC", "0.5")
self.assertTrue(trade.is_fullfiled)
- order1.filled_amount.assert_called_with(in_base_currency=False)
- order2.filled_amount.assert_called_with(in_base_currency=False)
- order3.filled_amount.assert_called_with(in_base_currency=False)
+ order1.filled_amount.assert_called_with(in_base_currency=False, refetch=True)
+ order2.filled_amount.assert_called_with(in_base_currency=False, refetch=True)
+ order3.filled_amount.assert_called_with(in_base_currency=False, refetch=True)
def test_filled_amount(self):
trade.orders.append(order2)
self.assertEqual(portfolio.Amount("ETH", "0.31"), trade.filled_amount())
- order1.filled_amount.assert_called_with(in_base_currency=False)
- order2.filled_amount.assert_called_with(in_base_currency=False)
+ order1.filled_amount.assert_called_with(in_base_currency=False, refetch=False)
+ order2.filled_amount.assert_called_with(in_base_currency=False, refetch=False)
self.assertEqual(portfolio.Amount("ETH", "0.31"), trade.filled_amount(in_base_currency=False))
- order1.filled_amount.assert_called_with(in_base_currency=False)
- order2.filled_amount.assert_called_with(in_base_currency=False)
+ order1.filled_amount.assert_called_with(in_base_currency=False, refetch=False)
+ order2.filled_amount.assert_called_with(in_base_currency=False, refetch=False)
self.assertEqual(portfolio.Amount("ETH", "0.31"), trade.filled_amount(in_base_currency=True))
- order1.filled_amount.assert_called_with(in_base_currency=True)
- order2.filled_amount.assert_called_with(in_base_currency=True)
+ order1.filled_amount.assert_called_with(in_base_currency=True, refetch=False)
+ order2.filled_amount.assert_called_with(in_base_currency=True, refetch=False)
@mock.patch.object(portfolio.Computation, "compute_value")
@mock.patch.object(portfolio.Trade, "filled_amount")
trade.orders = []
self.m.report.log_order.reset_mock()
+ with self.subTest(tick=22):
+ trade.update_order(order_mock, 22)
+ order_mock.cancel.assert_called()
+ new_order_mock.run.assert_called()
+ prepare_order.assert_called_with(compute_value=mock.ANY)
+ self.m.report.log_order.assert_called()
+ self.assertEqual(2, self.m.report.log_order.call_count)
+ calls = [
+ mock.call(order_mock, 22, update="market_adjust_eat",
+ compute_value=mock.ANY,
+ new_order=new_order_mock),
+ mock.call(order_mock, 22, new_order=new_order_mock),
+ ]
+ self.m.report.log_order.assert_has_calls(calls)
+
+ order_mock.reset_mock()
+ new_order_mock.reset_mock()
+ trade.orders = []
+ self.m.report.log_order.reset_mock()
def test_print_with_order(self):
value_from = portfolio.Amount("BTC", "0.5")
self.m.ccxt.is_dust_trade.return_value = True
order.mark_dust_amount_remaining_order()
+ self.assertEqual("pending", order.status)
+
+ order.status = "open"
+ order.mark_dust_amount_remaining_order()
self.assertEqual("closed_dust_remaining", order.status)
@mock.patch.object(portfolio.Order, "fetch")
fetch.assert_not_called()
order.status = "open"
self.assertEqual(portfolio.Amount("ETH", 5), order.filled_amount(in_base_currency=False))
+ fetch.assert_not_called()
+ self.assertEqual(portfolio.Amount("ETH", 5), order.filled_amount(in_base_currency=False, refetch=True))
fetch.assert_called_once()
self.assertEqual(portfolio.Amount("BTC", "0.7"), order.filled_amount(in_base_currency=True))