def test_open_position_error(): """ 测试打开头寸出错的情况 """ flag = [] def onOpenPositionError(order, errorId, errorMsg, position): flag.append([order, errorId, errorMsg, position]) trader = Trader() trader.bind('onOpenPositionError', onOpenPositionError) # 尝试打开头寸的报单 order = trader.openPosition(getDefaultInstrumentId(), 'buy', 1) position = order.position # 模拟打开头寸出错的情况 errorId = -1 errorMsg = u'测试' trader.onOpenPositionError(order, errorId, errorMsg, position) assert order.state == 'error' assert order.errorId == errorId assert order.errorMsg == errorMsg assert position.state == 'error' # 检查事件正常传递 assert len(flag) == 1 assert flag[0][0] == order assert flag[0][1] == errorId assert flag[0][2] == errorMsg assert flag[0][3] == position