]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - tests/test_portfolio.py
Don’t raise when some market is disabled
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / tests / test_portfolio.py
index 6ca3327318b210cc6f624a3c5e2046313c7550ec..cad3095a34eb2bfd0f42ef1b398d6ad878b86a6c 100644 (file)
@@ -26,6 +26,12 @@ class ComputationTest(WebMockTestCase):
         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):
 
@@ -506,6 +512,25 @@ 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")
@@ -832,6 +857,10 @@ class OrderTest(WebMockTestCase):
 
         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")
@@ -1827,7 +1856,7 @@ class AmountTest(WebMockTestCase):
         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 = {