def test_reserve_01_tree_reserve_release(self):
     sale_order_form = Form(self.env["sale.order"])
     sale_order_form.partner_id = self.partner
     with sale_order_form.order_line.new() as order_line_form:
         order_line_form.product_id = self.product_1
         order_line_form.product_uom_qty = 3
     so = sale_order_form.save()
     wiz = Form(
         self.env["sale.stock.reserve"].with_context(
             active_model="sale.order.line", active_ids=so.order_line.ids
         )
     ).save()
     wiz.button_reserve()
     self.assertEquals(self.product_1.virtual_available, 7)
     so.order_line.release_stock_reservation()
     self.assertEquals(self.product_1.virtual_available, 10)
 def test_reserve_05_unlink_order(self):
     sale_order_form = Form(self.env["sale.order"])
     sale_order_form.partner_id = self.partner
     with sale_order_form.order_line.new() as order_line_form:
         order_line_form.product_id = self.product_1
         order_line_form.product_uom_qty = 3
     so = sale_order_form.save()
     wiz = Form(
         self.env["sale.stock.reserve"].with_context(
             active_model="sale.order.line", active_ids=so.order_line.ids
         )
     ).save()
     wiz.button_reserve()
     with self.assertRaises(UserError):
         so.unlink()
     with self.assertRaises(UserError):
         so.order_line.unlink()
 def test_reserve_03_confirm_order_release(self):
     sale_order_form = Form(self.env["sale.order"])
     sale_order_form.partner_id = self.partner
     with sale_order_form.order_line.new() as order_line_form:
         order_line_form.product_id = self.product_1
         order_line_form.product_uom_qty = 3
     so = sale_order_form.save()
     wiz = Form(
         self.env["sale.stock.reserve"].with_context(
             active_model="sale.order.line", active_ids=so.order_line.ids
         )
     ).save()
     wiz.button_reserve()
     self.assertEquals(self.product_1.virtual_available, 7)
     so.action_confirm()
     cancelled_reservation = self.env["stock.reservation"].search(
         [("product_id", "=", self.product_1.id), ("state", "=", "cancel")]
     )
     self.assertEquals(len(cancelled_reservation), 1)
     self.assertEquals(self.product_1.virtual_available, 7)