]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - tests/test_portfolio.py
Merge branch 'dev'
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / tests / test_portfolio.py
index 4d789965673b9090c0df2ac7d74c0cd81e46d4ce..bc69921fe01f58b649492ccbafdcb500eebcb0ce 100644 (file)
@@ -142,9 +142,9 @@ 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")
@@ -169,9 +169,9 @@ class TradeTest(WebMockTestCase):
 
             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):
@@ -189,16 +189,16 @@ class TradeTest(WebMockTestCase):
         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")
@@ -823,14 +823,20 @@ class OrderTest(WebMockTestCase):
             order.cancel()
             self.m.ccxt.cancel_order.assert_not_called()
 
-    def test_dust_amount_remaining(self):
+    def test_mark_dust_amount_remaining(self):
         order = portfolio.Order("buy", portfolio.Amount("ETH", 10),
                 D("0.1"), "BTC", "long", self.m, "trade")
-        order.remaining_amount = mock.Mock(return_value=portfolio.Amount("ETH", 1))
-        self.assertFalse(order.dust_amount_remaining())
+        self.m.ccxt.is_dust_trade.return_value = False
+        order.mark_dust_amount_remaining_order()
+        self.assertEqual("pending", order.status)
 
-        order.remaining_amount = mock.Mock(return_value=portfolio.Amount("ETH", D("0.0001")))
-        self.assertTrue(order.dust_amount_remaining())
+        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")
     @mock.patch.object(portfolio.Order, "filled_amount", return_value=portfolio.Amount("ETH", 1))
@@ -861,6 +867,8 @@ class OrderTest(WebMockTestCase):
         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))
 
@@ -965,6 +973,7 @@ class OrderTest(WebMockTestCase):
                     "status": "foo",
                     "datetime": "timestamp"
                     }
+            self.m.ccxt.is_dust_trade.return_value = False
             order.fetch()
 
             self.m.ccxt.fetch_order.assert_called_once_with(45)