X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git;a=blobdiff_plain;f=tests%2Ftest_portfolio.py;h=bc69921fe01f58b649492ccbafdcb500eebcb0ce;hp=4d789965673b9090c0df2ac7d74c0cd81e46d4ce;hb=5f721612111af5c56b5757cb2f21da5f2fa388bf;hpb=bd559095622e4f654a54cf5054f77d9ebb42341b diff --git a/tests/test_portfolio.py b/tests/test_portfolio.py index 4d78996..bc69921 100644 --- a/tests/test_portfolio.py +++ b/tests/test_portfolio.py @@ -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)