def test_add_pos_already_entered(self, mock_get_pos, mock_db_commit, mock_add, mock_req_post): mock_get_pos.query.get.return_value = HOURLY_POS with app.app_context(): add_position(datetime.now(), "", PositionType.NONE) mock_add.assert_not_called() mock_db_commit.assert_not_called()
def test_add_pos_failing(self, mock_db_delete, mock_db_commit, mock_add, mock_get_pos, mock_req_post): mock_get_pos.query.get.return_value = None with app.app_context(): add_position(datetime.now(), "", PositionType.NONE) mock_add.assert_called_once() mock_db_commit.assert_not_called() mock_db_delete.assert_not_called()
def test_task_failing( self, mock_get_asset_balance, mock_get_data, mock_get_pos, mock_db_session, mock_req_post, ): with app.app_context(): task() mock_get_asset_balance.assert_called() mock_get_pos.assert_not_called() mock_get_data.assert_called() mock_req_post.assert_called()
def test_strategy_no_side( self, mock_get_asset_balance, mock_get_data, mock_get_pos, mock_db_session, mock_req_post, ): mock_get_pos.query.get.return_value = HOURLY_POS with app.app_context(): task() mock_get_asset_balance.assert_called() mock_get_pos.assert_called() mock_get_data.assert_called() mock_req_post.assert_not_called()
def test_exit_positions( self, mock_db_delete, mock_db_commit, mock_db_add, mock_get_pos, mock_remove_jobs, mock_req_post, ): mock_get_pos.query.get.return_value = PREVIOUS_NONE with app.app_context(): exit_trade_positions() mock_db_delete.assert_called() mock_db_add.assert_called() mock_db_commit.assert_called() mock_req_post.assert_called_once() mock_remove_jobs.assert_called_once()
def test_handle_decision_no_signal( self, mock_get_ticker, mock_get_pos, mock_db_session, mock_test_order, mock_get_symbol_info, mock_get_account, mock_req_post, ): mock_get_pos.query.get.return_value = PREVIOUS_LONG with app.app_context(): handle_decision(PositionType.NONE, "SYM") mock_test_order.assert_called_once() mock_get_symbol_info.assert_called_once() mock_get_account.assert_called() mock_req_post.assert_called_once() mock_get_pos.assert_called_once() mock_get_ticker.assert_called_once()
def test_handle_decision_long( self, mock_get_pos, mock_db_session, mock_test_order, mock_get_symbol_info, mock_orderbook_ticker, mock_get_account, mock_req_post, ): mock_get_pos.query.get.return_value = PREVIOUS_NONE with app.app_context(): handle_decision(PositionType.LONG, "BTC") mock_test_order.assert_called_once() mock_get_symbol_info.assert_called_once() mock_orderbook_ticker.assert_called() mock_get_account.assert_called() mock_req_post.assert_called_once() mock_get_pos.assert_called_once()
def test_get_pos_that_doesnt_exist(self, mock_get_pos, mock_req_post): mock_get_pos.query.get.return_value = None with app.app_context(): res = get_position(datetime.now(), "") self.assertEqual(PositionType.NONE, HOURLY_POS.position)
def test_get_pos(self, mock_get_pos, mock_req_post): mock_get_pos.query.get.return_value = HOURLY_POS with app.app_context(): res = get_position(datetime.now(), "") self.assertEqual(res, HOURLY_POS)
def test_handle_invalid_message_request(self, mock_req_post): with app.app_context(): handle_request(REQ2) mock_req_post.assert_called_once()