+ compute_value="average", debug=True)
+ prepare_orders.assert_called_with(compute_value="average")
+ print_all_with_order.assert_called()
+ self.assertRegex(stdout_mock.getvalue(), "Balance")
+
+ @mock.patch.object(helper, "prepare_trades")
+ @mock.patch.object(helper, "follow_orders")
+ @mock.patch.object(portfolio.TradeStore, "prepare_orders")
+ @mock.patch.object(portfolio.TradeStore, "print_all_with_order")
+ @mock.patch.object(portfolio.TradeStore, "run_orders")
+ @mock.patch('sys.stdout', new_callable=StringIO)
+ def test_process_sell_needed__1_sell(self, stdout_mock, run_orders,
+ print_all_with_order, prepare_orders, follow_orders,
+ prepare_trades):
+ market = mock.Mock()
+ portfolio.BalanceStore.all = {
+ "BTC": portfolio.Balance("BTC", {
+ "total": "0.65",
+ "exchange_total":"0.65",
+ "exchange_free": "0.35",
+ "exchange_used": "0.30"}),
+ "ETH": portfolio.Balance("ETH", {
+ "total": 3,
+ "exchange_total": 3,
+ "exchange_free": 3,
+ "exchange_used": 0}),
+ }
+ helper.process_sell_needed__1_sell(market)
+ prepare_trades.assert_called_with(market, base_currency="BTC",
+ debug=False)
+ prepare_orders.assert_called_with(compute_value="average",
+ only="dispose")
+ print_all_with_order.assert_called()
+ run_orders.assert_called()
+ follow_orders.assert_called()
+ self.assertRegex(stdout_mock.getvalue(), "Balance")
+
+ @mock.patch.object(helper, "update_trades")
+ @mock.patch.object(helper, "follow_orders")
+ @mock.patch.object(helper, "move_balances")
+ @mock.patch.object(portfolio.TradeStore, "prepare_orders")
+ @mock.patch.object(portfolio.TradeStore, "print_all_with_order")
+ @mock.patch.object(portfolio.TradeStore, "run_orders")
+ @mock.patch('sys.stdout', new_callable=StringIO)
+ def test_process_sell_needed__2_buy(self, stdout_mock, run_orders,
+ print_all_with_order, prepare_orders, move_balances,
+ follow_orders, update_trades):
+ market = mock.Mock()
+ portfolio.BalanceStore.all = {
+ "BTC": portfolio.Balance("BTC", {
+ "total": "0.65",
+ "exchange_total":"0.65",
+ "exchange_free": "0.35",
+ "exchange_used": "0.30"}),
+ "ETH": portfolio.Balance("ETH", {
+ "total": 3,
+ "exchange_total": 3,
+ "exchange_free": 3,
+ "exchange_used": 0}),
+ }
+ helper.process_sell_needed__2_buy(market)
+ update_trades.assert_called_with(market, base_currency="BTC",
+ debug=False, only="acquire")
+ prepare_orders.assert_called_with(compute_value="average",
+ only="acquire")
+ print_all_with_order.assert_called()
+ move_balances.assert_called_with(market, debug=False)
+ run_orders.assert_called()
+ follow_orders.assert_called()
+ self.assertRegex(stdout_mock.getvalue(), "Balance")
+
+ @mock.patch.object(helper, "prepare_trades_to_sell_all")
+ @mock.patch.object(helper, "follow_orders")
+ @mock.patch.object(portfolio.TradeStore, "prepare_orders")
+ @mock.patch.object(portfolio.TradeStore, "print_all_with_order")
+ @mock.patch.object(portfolio.TradeStore, "run_orders")
+ @mock.patch('sys.stdout', new_callable=StringIO)
+ def test_process_sell_all__1_sell(self, stdout_mock, run_orders,
+ print_all_with_order, prepare_orders, follow_orders,
+ prepare_trades_to_sell_all):
+ market = mock.Mock()
+ portfolio.BalanceStore.all = {
+ "BTC": portfolio.Balance("BTC", {
+ "total": "0.65",
+ "exchange_total":"0.65",
+ "exchange_free": "0.35",
+ "exchange_used": "0.30"}),
+ "ETH": portfolio.Balance("ETH", {
+ "total": 3,
+ "exchange_total": 3,
+ "exchange_free": 3,
+ "exchange_used": 0}),
+ }
+ helper.process_sell_all__1_all_sell(market)
+ prepare_trades_to_sell_all.assert_called_with(market, base_currency="BTC",
+ debug=False)