X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=test.py;h=edf6d015b08391c8bb722dd1badd9d0e2ffbe323;hb=c2644ba8db6e3890458af6a244aa3217e2ac4797;hp=fde3a0684808c9afc2bf2dd05fa2ddb1b8a9aa96;hpb=5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/test.py b/test.py index fde3a06..edf6d01 100644 --- a/test.py +++ b/test.py @@ -22,6 +22,8 @@ class AmountTest(unittest.TestCase): with mock.patch.object(portfolio.Trade, 'get_ticker', new=ticker_mock): ticker_mock.return_value = { + "bid": D("0.2"), + "ask": D("0.4"), "average": D("0.3"), "foo": "bar", } @@ -32,6 +34,15 @@ class AmountTest(unittest.TestCase): self.assertEqual(amount, converted_amount.linked_to) self.assertEqual("bar", converted_amount.ticker["foo"]) + converted_amount = amount.in_currency("ETH", None, action="bid", compute_value="default") + self.assertEqual(D("2"), converted_amount.value) + + converted_amount = amount.in_currency("ETH", None, compute_value="ask") + self.assertEqual(D("4"), converted_amount.value) + + converted_amount = amount.in_currency("ETH", None, rate=D("0.02")) + self.assertEqual(D("0.2"), converted_amount.value) + def test__abs(self): amount = portfolio.Amount("SC", -120) self.assertEqual(120, abs(amount).value) @@ -295,11 +306,11 @@ class BalanceTest(unittest.TestCase): self.assertEqual(D("0.65"), amounts["BTC"].value) self.assertEqual(D("0.30"), amounts["ETH"].value) - amounts = portfolio.Balance.in_currency("BTC", market, action="bid") + amounts = portfolio.Balance.in_currency("BTC", market, compute_value="bid") self.assertEqual(D("0.65"), amounts["BTC"].value) self.assertEqual(D("0.27"), amounts["ETH"].value) - amounts = portfolio.Balance.in_currency("BTC", market, action="bid", type="used") + amounts = portfolio.Balance.in_currency("BTC", market, compute_value="bid", type="used") self.assertEqual(D("0.30"), amounts["BTC"].value) self.assertEqual(0, amounts["ETH"].value) @@ -344,10 +355,16 @@ class BalanceTest(unittest.TestCase): "XEM": 7500, "BTC": 2500, } - get_ticker.side_effect = [ - { "average": D("0.0001") }, - { "average": D("0.000001") } - ] + def _get_ticker(c1, c2, market): + if c1 == "USDT" and c2 == "BTC": + return { "average": D("0.0001") } + if c1 == "XVG" and c2 == "BTC": + return { "average": D("0.000001") } + if c1 == "XEM" and c2 == "BTC": + return { "average": D("0.001") } + raise Exception("Should be called with {}, {}".format(c1, c2)) + get_ticker.side_effect = _get_ticker + market = mock.Mock() market.fetch_balance.return_value = { "USDT": { @@ -492,6 +509,10 @@ class TradeTest(unittest.TestCase): def test_follow_orders(self): pass + @unittest.skip("TODO") + def test_compute_value(self): + pass + @unittest.skip("TODO") def test__repr(self): pass