X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2Ftest_portfolio.py;h=4d789965673b9090c0df2ac7d74c0cd81e46d4ce;hb=6cffa4af8b5a04b17ffd95738b8e843c4605d4e7;hp=2a42d0cd5507dc453ba76ff4fa54585bc47404cf;hpb=1d72880c097ea8259ce9cc63cfe55e6cc7516bd2;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/tests/test_portfolio.py b/tests/test_portfolio.py index 2a42d0c..4d78996 100644 --- a/tests/test_portfolio.py +++ b/tests/test_portfolio.py @@ -2,6 +2,7 @@ from .helper import * import portfolio import datetime +@unittest.skipUnless("unit" in limits, "Unit skipped") class ComputationTest(WebMockTestCase): def test_compute_value(self): compute = mock.Mock() @@ -25,6 +26,7 @@ class ComputationTest(WebMockTestCase): portfolio.Computation.compute_value("foo", "bid", compute_value="test") compute.assert_called_with("foo", "bid") +@unittest.skipUnless("unit" in limits, "Unit skipped") class TradeTest(WebMockTestCase): def test_values_assertion(self): @@ -218,6 +220,26 @@ class TradeTest(WebMockTestCase): self.assertEqual(0, len(trade.orders)) Order.assert_not_called() + self.m.get_ticker.return_value = None + with self.subTest(desc="Unknown ticker"): + filled_amount.return_value = portfolio.Amount("BTC", "3") + compute_value.return_value = D("0.125") + + value_from = portfolio.Amount("BTC", "1") + value_from.rate = D("0.1") + value_from.linked_to = portfolio.Amount("FOO", "10") + value_to = portfolio.Amount("BTC", "10") + trade = portfolio.Trade(value_from, value_to, "FOO", self.m) + + trade.prepare_order() + + filled_amount.assert_not_called() + compute_value.assert_not_called() + self.assertEqual(0, len(trade.orders)) + Order.assert_not_called() + self.m.report.log_error.assert_called_once_with('prepare_order', + message='Unknown ticker FOO/BTC') + self.m.get_ticker.return_value = { "inverted": False } with self.subTest(desc="Already filled"): filled_amount.return_value = portfolio.Amount("FOO", "100") @@ -589,6 +611,7 @@ class TradeTest(WebMockTestCase): self.assertEqual("ETH", as_json["currency"]) self.assertEqual("BTC", as_json["base_currency"]) +@unittest.skipUnless("unit" in limits, "Unit skipped") class BalanceTest(WebMockTestCase): def test_values(self): balance = portfolio.Balance("BTC", { @@ -664,6 +687,7 @@ class BalanceTest(WebMockTestCase): self.assertEqual(D(0), as_json["margin_available"]) self.assertEqual(D(0), as_json["margin_borrowed"]) +@unittest.skipUnless("unit" in limits, "Unit skipped") class OrderTest(WebMockTestCase): def test_values(self): order = portfolio.Order("buy", portfolio.Amount("ETH", 10), @@ -1725,6 +1749,7 @@ class OrderTest(WebMockTestCase): result = order.retrieve_order() self.assertFalse(result) +@unittest.skipUnless("unit" in limits, "Unit skipped") class MouvementTest(WebMockTestCase): def test_values(self): mouvement = portfolio.Mouvement("ETH", "BTC", { @@ -1782,6 +1807,7 @@ class MouvementTest(WebMockTestCase): self.assertEqual("BTC", as_json["base_currency"]) self.assertEqual("ETH", as_json["currency"]) +@unittest.skipUnless("unit" in limits, "Unit skipped") class AmountTest(WebMockTestCase): def test_values(self): amount = portfolio.Amount("BTC", "0.65")