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",
}
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)
+
def test__abs(self):
amount = portfolio.Amount("SC", -120)
self.assertEqual(120, abs(amount).value)
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)
"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": {
def test_follow_orders(self):
pass
+ @unittest.skip("TODO")
+ def test_compute_value(self):
+ pass
+
@unittest.skip("TODO")
def test__repr(self):
pass