X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=test.py;h=8a6ba50ea6d54c93786732d7510dc55ca9ada599;hb=ecba11139e357567c46f7ba2a0cf8dbd98266fe8;hp=25898961aa2f3729a6c205ce7a32ec764cbe784f;hpb=a9950fd073198f3c9dc938fd731d97c9821a3845;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/test.py b/test.py index 2589896..8a6ba50 100644 --- a/test.py +++ b/test.py @@ -426,10 +426,10 @@ class TradeTest(unittest.TestCase): market = mock.Mock() market.fetch_ticker.side_effect = [ { "bid": 1, "ask": 3 }, - portfolio.ccxt.ExchangeError("foo"), + portfolio.ExchangeError("foo"), { "bid": 10, "ask": 40 }, - portfolio.ccxt.ExchangeError("foo"), - portfolio.ccxt.ExchangeError("foo"), + portfolio.ExchangeError("foo"), + portfolio.ExchangeError("foo"), ] ticker = portfolio.Trade.get_ticker("ETH", "ETC", market) @@ -489,7 +489,21 @@ class TradeTest(unittest.TestCase): @unittest.skip("TODO") def test_values_assertion(self): - pass + value_from = Amount("BTC", "1.0") + value_from.linked_to = Amount("ETH", "10.0") + value_to = Amount("BTC", "1.0") + trade = portfolioTrade(value_from, value_to, "ETH") + self.assertEqual("BTC", trade.base_currency) + self.assertEqual("ETH", trade.currency) + + with self.assertRaises(AssertionError): + portfolio.Trade(value_from, value_to, "ETC") + with self.assertRaises(AssertionError): + value_from.linked_to = None + portfolio.Trade(value_from, value_to, "ETH") + with self.assertRaises(AssertionError): + value_from.currency = "ETH" + portfolio.Trade(value_from, value_to, "ETH") @unittest.skip("TODO") def test_fetch_fees(self): @@ -606,7 +620,7 @@ class AcceptanceTest(unittest.TestCase): "ask": D("0.0012") } if symbol == "USDT/BTC": - raise portfolio.ccxt.ExchangeError + raise portfolio.ExchangeError if symbol == "BTC/USDT": return { "symbol": "BTC/USDT", @@ -662,14 +676,14 @@ class AcceptanceTest(unittest.TestCase): self.assertEqual(D("0.00003003"), all_orders[1].rate) - def create_order(symbol, type, action, amount, price=None): + def create_order(symbol, type, action, amount, price=None, account="exchange"): self.assertEqual("limit", type) if symbol == "ETH/BTC": - self.assertEqual("bid", action) + self.assertEqual("sell", action) self.assertEqual(2, 3*amount) self.assertEqual(D("0.14014"), price) elif symbol == "XVG/BTC": - self.assertEqual("bid", action) + self.assertEqual("sell", action) self.assertEqual(1000, amount) self.assertEqual(D("0.00003003"), price) else: @@ -755,19 +769,21 @@ class AcceptanceTest(unittest.TestCase): self.assertEqual("sell", trades["XVG"].action) # Action 6 - portfolio.Trade.prepare_orders(only="buy", compute_value=lambda x, y: x["ask"] * D("0.999")) + portfolio.Trade.prepare_orders(only="buy", compute_value=lambda x, y: x["ask"]) all_orders = portfolio.Trade.all_orders(state="pending") self.assertEqual(3, len(all_orders)) - self.assertEqual(portfolio.Amount("ETC", D("15.4")), all_orders[0].amount) - self.assertEqual(D("0.002997"), all_orders[0].rate) - self.assertEqual("ask", all_orders[0].action) - self.assertEqual(portfolio.Amount("BTD", D("9.7")), all_orders[1].amount) - self.assertEqual(D("0.0011988"), all_orders[1].rate) - self.assertEqual("ask", all_orders[1].action) + self.assertEqual(portfolio.Amount("ETC", D("38.5")/3), all_orders[0].amount) + self.assertEqual(D("0.003"), all_orders[0].rate) + self.assertEqual("buy", all_orders[0].action) + + self.assertEqual(portfolio.Amount("BTD", D("24.25")/3), all_orders[1].amount) + self.assertEqual(D("0.0012"), all_orders[1].rate) + self.assertEqual("buy", all_orders[1].action) + self.assertEqual(portfolio.Amount("BTC", D("0.0097")), all_orders[2].amount) - self.assertEqual(D("15984"), all_orders[2].rate) - self.assertEqual("bid", all_orders[2].action) + self.assertEqual(D("16000"), all_orders[2].rate) + self.assertEqual("sell", all_orders[2].action) with mock.patch.object(portfolio.time, "sleep") as sleep: # Action 7