From 0c79fad318711394874d94672e96db6da1ed9c52 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Mon, 12 Feb 2018 02:08:50 +0100 Subject: [PATCH] Fix move_balance not moving currencies absent from trades --- helper.py | 7 +++++-- test.py | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/helper.py b/helper.py index f1aeaf2..8ef2d64 100644 --- a/helper.py +++ b/helper.py @@ -4,10 +4,13 @@ from store import * def move_balances(market, debug=False): needed_in_margin = {} + for currency in BalanceStore.all: + if BalanceStore.all[currency].margin_free != 0: + needed_in_margin[currency] = 0 for trade in TradeStore.all: + if trade.value_to.currency not in needed_in_margin: + needed_in_margin[trade.value_to.currency] = 0 if trade.trade_type == "short": - if trade.value_to.currency not in needed_in_margin: - needed_in_margin[trade.value_to.currency] = 0 needed_in_margin[trade.value_to.currency] += abs(trade.value_to) for currency, needed in needed_in_margin.items(): current_balance = BalanceStore.all[currency].margin_free diff --git a/test.py b/test.py index 26646be..1965521 100644 --- a/test.py +++ b/test.py @@ -724,7 +724,8 @@ class HelperTest(WebMockTestCase): portfolio.TradeStore.all = [trade1, trade2, trade3] balance1 = portfolio.Balance("BTC", { "margin_free": "0" }) balance2 = portfolio.Balance("USDT", { "margin_free": "100" }) - portfolio.BalanceStore.all = {"BTC": balance1, "USDT": balance2} + balance3 = portfolio.Balance("ETC", { "margin_free": "10" }) + portfolio.BalanceStore.all = {"BTC": balance1, "USDT": balance2, "ETC": balance3} market = mock.Mock() @@ -736,6 +737,7 @@ class HelperTest(WebMockTestCase): else: market.transfer_balance.assert_any_call("BTC", 3, "exchange", "margin") market.transfer_balance.assert_any_call("USDT", 50, "margin", "exchange") + market.transfer_balance.assert_any_call("ETC", 10, "margin", "exchange") @mock.patch.object(helper, "prepare_trades") @mock.patch.object(portfolio.TradeStore, "prepare_orders") -- 2.41.0