def test_cancel_order_success(): """ 测试取消报单并成功 """ openLimitPrice = 1000 trader = Trader() # 尝试创建头寸 toOrder = trader.openPosition( instrumentId=getDefaultInstrumentId(), direction='buy', volume=1, openLimitPrice=openLimitPrice ) # 发起撤单请求 order = trader.cancelOrder(toOrder.id) assert order.order == toOrder assert order.action == 'cancel' assert order.state == 'insert' assert order.finishTime is None # 发起撤单成功 trader.onOrderCanceled(order, toOrder) toOrder = ModelOrder.objects.get(id=toOrder.id) order = ModelOrder.objects.get(id=order.id) position = toOrder.position assert order.state == 'finish' assert order.finishTime is not None assert toOrder.state == 'cancel' assert toOrder.finishTime is not None assert position.state == 'cancel'