Пример #1
0
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