order_mock2.trade = trade_mock
trade_mock.tick_actions_recreate.return_value = "tick1"
+ new_order_mock = mock.Mock()
+ trade_mock.prepare_order.return_value = new_order_mock
m.follow_orders()
trade_mock.tick_actions_recreate.assert_called_once_with(2)
trade_mock.prepare_order.assert_called_once_with(compute_value="tick1")
m.report.log_error.assert_called_once_with("follow_orders", message=mock.ANY)
+ m.report.log_order.assert_called_with(order_mock2, 2, new_order=new_order_mock)
+ new_order_mock.run.assert_called_once_with()
@mock.patch.object(market.BalanceStore, "fetch_balances")
def test_move_balance(self, fetch_balances):
store_report.assert_called_once()
log_error.assert_not_called()
+ process.reset_mock()
+ log_error.reset_mock()
+ store_report.reset_mock()
+ with self.subTest(authentication_error=True):
+ m.ccxt.check_required_credentials.side_effect = market.ccxt.AuthenticationError
+
+ m.process(["some_action"], before=True)
+ log_error.assert_called_with("market_authentication", message="Impossible to authenticate to market")
+ store_report.assert_called_once()
+
+ m.ccxt.check_required_credentials.side_effect = True
process.reset_mock()
log_error.reset_mock()
store_report.reset_mock()
process.side_effect = Exception("bouh")
m.process(["some_action"], before=True)
- log_error.assert_called_with("market_process", exception=mock.ANY)
+ log_error.assert_called_with("market_process", exception=mock.ANY, message=mock.ANY)
store_report.assert_called_once()
self.m.balances.fetch_balances.assert_has_calls([
mock.call(add_portfolio=True, checkpoint='end',
log_tickers=True,
+ add_usdt=True,
tag='process_foo__0_print_balances_begin')
])
processor.process_step("foo", step, {"foo":"bar"})
self.m.balances.fetch_balances.assert_called_once_with(
- add_portfolio=True, log_tickers=True,
+ add_portfolio=True, add_usdt=True, log_tickers=True,
tag='process_foo__1_print_balances_begin')
def test_parse_args(self):