odoo/addons/purchase/test/process/cancel_order.yml

55 lines
1.8 KiB
YAML

-
In order to test the cancel flow, I start it from canceling confirmed purchase order.
-
I confirm the purchase order.
-
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_4}
-
I check the "Approved" status after confirmed RFQ.
-
!assert {model: purchase.order, id: purchase_order_4}:
- state == 'approved'
-
First I cancel receptions related to this order if order shipped.
-
!python {model: purchase.order}: |
order = self.browse(cr, uid, ref("purchase_order_4"))
self.pool.get('stock.picking').action_cancel(cr, uid, [picking.id for picking in order.picking_ids])
-
I check order status in "Shipping Exception".
-
!python {model: purchase.order}: |
order = self.browse(cr, uid, ref("purchase_order_4"))
assert order.state == "except_picking", "order should be in Ship Exception state after cancel shipment"
-
Now I am able to cancel purchase order.
-
!python {model: purchase.order}: |
self.action_cancel(cr, uid, [ref("purchase_order_4")])
-
I check that order is cancelled.
-
!assert {model: purchase.order, id: purchase_order_4}:
- state == 'cancel'
-
After cancel the order, I check that it's related invoice cancelled.
-
!python {model: purchase.order}: |
order = self.browse(cr, uid, ref("purchase_order_4"))
assert order.invoice_ids[0].state == "cancel", "order's related invoice should be cancelled"
-
Now again set cancelled order to draft.
-
!python {model: purchase.order}: |
self.action_cancel_draft(cr, uid, [ref("purchase_order_4")])
-
Now I again to cancel draft order.
-
!python {model: purchase.order}: |
self.action_cancel(cr, uid, [ref("purchase_order_4")])
-
I check that order is cancelled.
-
!assert {model: purchase.order, id: purchase_order_4}:
- state == 'cancel'