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):
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")
with self.subTest(similar_open_order=True):
order = portfolio.Order("buy", portfolio.Amount("ETH", "0.001"),
D("0.1"), "BTC", "long", self.m, "trade")
- order.start_date = datetime.datetime(2018, 3, 25, 15, 15, 55)
+ order.start_date = datetime.datetime(2018, 3, 25, 15, 15, 55, 0, tz(2))
self.m.ccxt.order_precision.return_value = 8
self.m.ccxt.fetch_orders.return_value = [
with self.subTest(similar_open_order=False, past_trades=True):
order = portfolio.Order("buy", portfolio.Amount("ETH", "0.001"),
D("0.1"), "BTC", "long", self.m, "trade")
- order.start_date = datetime.datetime(2018, 3, 25, 15, 15, 55)
+ order.start_date = datetime.datetime(2018, 3, 25, 15, 15, 55, 0, tz(2))
self.m.ccxt.order_precision.return_value = 8
self.m.ccxt.fetch_orders.return_value = []
with self.subTest(desc="no ticker for currency"):
self.m.get_ticker.return_value = None
- self.assertRaises(Exception, amount.in_currency, "ETH", self.m)
+ self.assertEqual(portfolio.Amount("ETH", 0), amount.in_currency("ETH", self.m))
with self.subTest(desc="nominal case"):
self.m.get_ticker.return_value = {