[IMP] sale:-improved the yaml files-postpaid,shipping-manual,invoice from picking
authormtr <mtr@mtr>
Fri, 16 Jul 2010 13:35:35 +0000 (19:05 +0530)
committermtr <mtr@mtr>
Fri, 16 Jul 2010 13:35:35 +0000 (19:05 +0530)
bzr revid: mtr@mtr-20100716133535-ny9yr8txsi86f5e7

addons/sale/test/invoice_from_picking.yml
addons/sale/test/postpaid_sale_order.yml
addons/sale/test/shipping_manual_sale_order.yml

index c5ba349..a13120d 100644 (file)
       False, "active_model": 'account.invoice', "active_ids": [so.invoice_ids[0].id], "type":
       "out_invoice", "active_id": so.invoice_ids[0].id, })
 -
-    Creating an account invoice pay writeoff entry.
+  Creating an account invoice pay writeoff entry.
 -
   !record {model: account.invoice.pay.writeoff, id: account_invoice_pay_writeoff_0}:
     analytic_id: account.analytic_customers
 -
   !python {model: procurement.order}: |
     from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
     sale_order_obj = self.pool.get('sale.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
     proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
 -
   I verify that a purchase order has been generated
 -
-  !python {model: purchase.order}: |
+  !python {model: sale.order}: |
     from tools.translate import _
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
-    proc_ids = self.search(cr, uid, [('origin','=',so.name)])
-    assert proc_ids, _('Purchase order has not been generated')
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase order has not been generated"
+    so = self.browse(cr, uid, ref("sale_order_so7"))
+    pur_obj=self.pool.get('purchase.order')
+    pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
+    assert pur_id, _('Purchase order has not been generated')
 -
   I click on the "Confirm" button to confirm the purchase order
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
+  !python {model: sale.order}: |
+    from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase order has not been generated"
+    pur_obj=self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so7"))
     import netsvc
     wf_service = netsvc.LocalService("workflow")
-    pur_ids = self.search(cr, uid, [('origin','=',so.name)])
+    pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
     for pur in pur_ids:
       wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
 - 
   I click on the "Approved by supplier" button to approve the purchase order
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
+  !python {model: sale.order}: |
+    from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase order has not been generated"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so7"))
     import netsvc
     wf_service = netsvc.LocalService("workflow")
-    pur_ids = self.search(cr, uid, [('origin','=',so.name)])
+    pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
     for pur in pur_ids:
       wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
 -
   I verify that a picking related to purchase order has been generated. 
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
-    ids = self.search(cr, uid, [('origin','=',so.name)])
-    po = self.browse(cr, uid, ids)[0]
-    assert(po.picking_ids)
+  !python {model: sale.order}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase order has not been generated"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so7"))
+    pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+    po = pur_obj.browse(cr, uid, pur_id)[0]
+    assert(po.picking_ids),"Picking for purchase order has not been generated"
 -  
   Then I click on the "Products Received" button of Incoming Shipments
 -
   I click on the "Validate" button
 -
   !python {model: stock.picking}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase order has not been generated"
     sale_order_obj = self.pool.get('sale.order')
     pur_obj = self.pool.get('purchase.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
     for pick in pick_ser_id:
       wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
 -
-  I verify that picking state is done
+  I verify that picking for purchase order has been done.
 -
-  !python {model: purchase.order}: |
+  !python {model: sale.order}: |
     from tools.translate import _
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
-    pur_id = self.search(cr, uid, [('origin','=',so.name)])
-    po = self.browse(cr, uid, pur_id)[0]
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase order has not been generated"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so7"))
+    pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+    po = pur_obj.browse(cr, uid, pur_id)[0]
     picking_obj = self.pool.get('stock.picking')
     ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
     assert ids, _('Picking is not in the done state!')
 -
+  I verify that delivery order has been generated for sale order
+-
+  !python {model: stock.picking }: |
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   assert (picking_id),"Delivery order has not been generated"
+-
+  I verify that delivery has been done
+-
+  !python {model: stock.picking }: |
+   import time
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   if picking_id:
+      pick=self.browse(cr,uid,picking_id[0])
+      pick.force_assign(cr, uid)
+      partial_datas = {
+           'partner_id':pick.address_id.partner_id.id,
+            'address_id': pick.address_id.id,
+            'delivery_date' : time.strftime('%Y-%m-%d'),
+           }
+      move = pick.move_lines[0]
+      partial_datas['move%s'%(move.id)]= {
+          'product_id': move.product_id.id,
+          'product_qty': move.product_qty,
+          'product_uom': move.product_uom.id,
+      } 
+      self.do_partial(cr, uid, [pick.id],partial_datas)  
+-
+  I verify that delivery state is done
+-
+  !python {model: stock.picking }: |
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   if picking_id:
+     pick = self.browse(cr,uid,picking_id[0])
+     assert (pick.state) =='done', "Picking for SO is not in done state."
+-
   I verify that a "Picked" has been set to true 
 -
   !python {model: sale.order}: |
     so = self.browse(cr, uid, ref("sale_order_so7"))
-    assert (so.shipped == True), "Picking is not done."
+    assert (so.shipped == True), "Picked has not been set to True"
 -  
   I verify that a sale order is in done state
 -
index 9e35a7a..c16a2a3 100644 (file)
     so = self.browse(cr, uid, ref("sale_order_so8"))
     assert so.picking_ids,"Picking has not been generated for sale_order_so8"
 -
-  Products are delivered to the Cleartrail Customer.
+  Then I done the picking
 - 
   !python {model: stock.picking }: |
    import time
       } 
       self.do_partial(cr, uid, [pick.id],partial_datas)
 -
-  I click on the "Validate" button
--
-  !python {model: stock.picking}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
-    import netsvc
-    wf_service = netsvc.LocalService("workflow")
-    picking_id = self.search(cr, uid, [('origin','=',so.name)])
-    for pick in picking_id:
-      wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
--
   I verify that picking order is in done state.
 -
   !python {model: stock.picking }: |
      pick = self.browse(cr,uid,picking_id[0])
      assert (pick.state == 'done'), "Picking for SO is not in done state." 
 -
+  I verify that delivery order has been generated for sale order
+-
+  !python {model: stock.picking }: |
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   assert (picking_id),"Delivery order has not been generated"
+-
+  I click on the Products Sent button and then on the Validate button
+-
+  !python {model: stock.picking }: |
+   import time
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   if picking_id:
+      pick=self.browse(cr,uid,picking_id[0])
+      pick.force_assign(cr, uid)
+      partial_datas = {
+           'partner_id':pick.address_id.partner_id.id,
+            'address_id': pick.address_id.id,
+            'delivery_date' : time.strftime('%Y-%m-%d'),
+           }
+      move = pick.move_lines[0]
+      partial_datas['move%s'%(move.id)]= {
+          'product_id': move.product_id.id,
+          'product_qty': move.product_qty,
+          'product_uom': move.product_uom.id,
+      } 
+      self.do_partial(cr, uid, [pick.id],partial_datas)  
+-
+  I verify that delivery state is done
+-
+  !python {model: stock.picking }: |
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   if picking_id:
+     pick = self.browse(cr,uid,picking_id[0])
+     assert (pick.state) =='done', "Picking for SO is not in done state."
+-
   I verify that a procurement has been generated for so
 -
   !python {model: procurement.order}: |
 -
   !python {model: procurement.order}: |
     from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
     sale_order_obj = self.pool.get('sale.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
     proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
-    assert proc_ids, _('Procurement is not in the running state!')
 -
   I verify that a purchase order has been generated
 -
-  !python {model: purchase.order}: |
+  !python {model: sale.order}: |
     from tools.translate import _
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
-    proc_ids = self.search(cr, uid, [('origin','=',so.name)])
-    assert proc_ids, _('Purchase order has not been generated')
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    so = self.browse(cr, uid, ref("sale_order_so8"))
+    pur_obj=self.pool.get('purchase.order')
+    pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
+    assert pur_id, _('Purchase order has not been generated')
 -
   I click on the "Confirm" button to confirm the purchase order
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+  !python {model: sale.order}: |
+    from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj=self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so8"))
     import netsvc
     wf_service = netsvc.LocalService("workflow")
-    pur_ids = self.search(cr, uid, [('origin','=',so.name)])
+    pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
     for pur in pur_ids:
       wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
 - 
   I click on the "Approved by supplier" button to approve the purchase order
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+  !python {model: sale.order}: |
+    from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so8"))
     import netsvc
     wf_service = netsvc.LocalService("workflow")
-    pur_ids = self.search(cr, uid, [('origin','=',so.name)])
+    pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
     for pur in pur_ids:
       wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
 -
   I verify that a picking related to purchase order has been generated. 
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
-    ids = self.search(cr, uid, [('origin','=',so.name)])
-    po = self.browse(cr, uid, ids)[0]
-    assert(po.picking_ids)
+  !python {model: sale.order}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so8"))
+    pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+    po = pur_obj.browse(cr, uid, pur_id)[0]
+    assert(po.picking_ids),"Picking for purchase order has not been generated"
 -  
   Then I click on the "Products Received" button of Incoming Shipments
 -
   I click on the "Validate" button
 -
   !python {model: stock.picking}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
     sale_order_obj = self.pool.get('sale.order')
     pur_obj = self.pool.get('purchase.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
     for pick in pick_ser_id:
       wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
 -
-  I verify that picking state is done
+ I verify that picking for purchase order has been done.
 -
-  !python {model: purchase.order}: |
+  !python {model: sale.order}: |
     from tools.translate import _
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
-    pur_id = self.search(cr, uid, [('origin','=',so.name)])
-    po = self.browse(cr, uid, pur_id)[0]
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so8"))
+    pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+    po = pur_obj.browse(cr, uid, pur_id)[0]
     picking_obj = self.pool.get('stock.picking')
     ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
     assert ids, _('Picking is not in the done state!')
 -
   !python {model: sale.order}: |
     so = self.browse(cr, uid, ref("sale_order_so8"))
-    assert so.invoice_ids, "Invoices has not been generated for sale_order_so8"
+    assert so.invoice_ids, "Invoice has not been generated"
 - 
   I open the Invoice for the SO.
 - 
   I pay the invoice.
 - 
   !python {model: account.invoice.pay}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Invoice has not been generated"
     sale_order_obj = self.pool.get('sale.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))  
     self.wo_check(cr, uid, [ref("account_invoice_pay_tst0")], {"lang": "en_US", "tz":
   Pay and Reconcile the Invoice.
 - 
   !python {model: account.invoice.pay.writeoff}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Invoice has not been generated"
     sale_order_obj = self.pool.get('sale.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))   
     self.pay_and_reconcile_writeoff(cr, uid, [ref("account_invoice_pay_writeoff_0")],
   I verify the invoice are in paid state or not. 
 -
   !python {model: account.invoice}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Invoice has not been generated"
     sale_order_obj = self.pool.get('sale.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
     invoice_ids = so.invoice_ids
index 7389b2d..045483c 100644 (file)
     so = self.browse(cr, uid, ref("sale_order_so0"))
     assert so.picking_ids,"Picking has not been generated for sale_order_so0"
 -
-  Products are delivered to the Cleartrail Customer.
-- 
-  !python {model: stock.picking }: |
-   import time
-   sale_order_obj = self.pool.get('sale.order')
-   so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
-   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
-   if picking_id:
-      pick=self.browse(cr,uid,picking_id[0])
-      pick.force_assign(cr, uid)
-      partial_datas = {
-           'partner_id':pick.address_id.partner_id.id,
-            'address_id': pick.address_id.id,
-            'delivery_date' : time.strftime('%Y-%m-%d'),
-           }
-      move = pick.move_lines[0]
-      partial_datas['move%s'%(move.id)]= {
-          'product_id': move.product_id.id,
-          'product_qty': move.product_qty,
-          'product_uom': move.product_uom.id,
-      } 
-      self.do_partial(cr, uid, [pick.id],partial_datas)
--
-  I verify that picking order is in done state.
+  I verify that delivery order has been generated for sale order
 -
   !python {model: stock.picking }: |
    sale_order_obj = self.pool.get('sale.order')
    so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
-   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
-   if picking_id:
-     pick = self.browse(cr,uid,picking_id[0])
-     assert (pick.state) =='done', "Picking for SO is not in done state." 
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   assert (picking_id),"Delivery order has not been generated"
 -
   I verify that a procurement has been generated for so
 -
 -
   !python {model: procurement.order}: |
     from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
     sale_order_obj = self.pool.get('sale.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
     proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
 -
   I verify that a purchase order has been generated
 -
-  !python {model: purchase.order}: |
+  !python {model: sale.order}: |
     from tools.translate import _
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
-    proc_ids = self.search(cr, uid, [('origin','=',so.name)])
-    assert proc_ids, _('Purchase order has not been generated')
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    so = self.browse(cr, uid, ref("sale_order_so0"))
+    pur_obj=self.pool.get('purchase.order')
+    pur_id=pur_obj.search(cr, uid, [('origin','=',so.name)])
+    assert pur_id, _('Purchase order has not been generated')
 -
   I click on the "Confirm" button to confirm the purchase order
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+  !python {model: sale.order}: |
+    from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj=self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so0"))
     import netsvc
     wf_service = netsvc.LocalService("workflow")
-    pur_ids = self.search(cr, uid, [('origin','=',so.name)])
+    pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
     for pur in pur_ids:
       wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_confirm', cr)
 - 
   I click on the "Approved by supplier" button to approve the purchase order
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+  !python {model: sale.order}: |
+    from tools.translate import _
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so0"))
     import netsvc
     wf_service = netsvc.LocalService("workflow")
-    pur_ids = self.search(cr, uid, [('origin','=',so.name)])
+    pur_ids = pur_obj.search(cr, uid, [('origin','=',so.name)])
     for pur in pur_ids:
       wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
 -
   I verify that a picking related to purchase order has been generated. 
 -
-  !python {model: purchase.order}: |
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
-    ids = self.search(cr, uid, [('origin','=',so.name)])
-    po = self.browse(cr, uid, ids)[0]
-    assert(po.picking_ids)
+  !python {model: sale.order}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so0"))
+    pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+    po = pur_obj.browse(cr, uid, pur_id)[0]
+    assert(po.picking_ids),"Picking for purchase order has not been generated"
 -  
   Then I click on the "Products Received" button of Incoming Shipments
 -
   I click on the "Validate" button
 -
   !python {model: stock.picking}: |
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
     sale_order_obj = self.pool.get('sale.order')
     pur_obj = self.pool.get('purchase.order')
     so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
     for pick in pick_ser_id:
       wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
 -
-  I verify that picking state is done
+  I verify that picking for purchase order has been done.
 -
-  !python {model: purchase.order}: |
+  !python {model: sale.order}: |
     from tools.translate import _
-    sale_order_obj = self.pool.get('sale.order')
-    so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
-    pur_id = self.search(cr, uid, [('origin','=',so.name)])
-    po = self.browse(cr, uid, pur_id)[0]
+    modules = self.pool.get('ir.module.module')
+    mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+    mod_brw = modules.browse(cr,uid,mod_pur)[0]
+    assert (mod_brw.state == 'installed'),"Purchase module is not installed"
+    pur_obj = self.pool.get('purchase.order')
+    so = self.browse(cr, uid, ref("sale_order_so0"))
+    pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+    po = pur_obj.browse(cr, uid, pur_id)[0]
     picking_obj = self.pool.get('stock.picking')
     ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
     assert ids, _('Picking is not in the done state!')
 -
+  Then I done the picking
+- 
+  !python {model: stock.picking }: |
+   import time
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
+   if picking_id:
+      pick=self.browse(cr,uid,picking_id[0])
+      pick.force_assign(cr, uid)
+      partial_datas = {
+           'partner_id':pick.address_id.partner_id.id,
+            'address_id': pick.address_id.id,
+            'delivery_date' : time.strftime('%Y-%m-%d'),
+           }
+      move = pick.move_lines[0]
+      partial_datas['move%s'%(move.id)]= {
+          'product_id': move.product_id.id,
+          'product_qty': move.product_qty,
+          'product_uom': move.product_uom.id,
+      } 
+      self.do_partial(cr, uid, [pick.id],partial_datas)
+-
+  I verify that picking for sale order is in done state.
+-
+  !python {model: stock.picking }: |
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
+   if picking_id:
+     pick = self.browse(cr,uid,picking_id[0])
+     assert (pick.state) =='done', "Picking for SO is not in done state." 
+-
+  Then I done the delivery order
+-
+  !python {model: stock.picking }: |
+   import time
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   if picking_id:
+      pick=self.browse(cr,uid,picking_id[0])
+      pick.force_assign(cr, uid)
+      partial_datas = {
+           'partner_id':pick.address_id.partner_id.id,
+            'address_id': pick.address_id.id,
+            'delivery_date' : time.strftime('%Y-%m-%d'),
+           }
+      move = pick.move_lines[0]
+      partial_datas['move%s'%(move.id)]= {
+          'product_id': move.product_id.id,
+          'product_qty': move.product_qty,
+          'product_uom': move.product_uom.id,
+      } 
+      self.do_partial(cr, uid, [pick.id],partial_datas)  
+-
+  I verify that delivery state is done
+-
+  !python {model: stock.picking }: |
+   sale_order_obj = self.pool.get('sale.order')
+   so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+   picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','delivery')])
+   if picking_id:
+     pick = self.browse(cr,uid,picking_id[0])
+     assert (pick.state) =='done', "Picking for SO is not in done state."
+-
   I verify that a "Picked" has been set to true 
 -
   !python {model: sale.order}: |
     so = self.browse(cr, uid, ref("sale_order_so0"))
-    assert (so.shipped == True), "Picking is not done."
--  
+    assert (so.shipped == True), "Picked has not been set to True"
+-
   I verify that a sale order is in done state
 -
    !python {model: sale.order}: |
     so = self.browse(cr, uid, ref("sale_order_so0"))
     assert (so.state == 'done'), "Sale order is not in the done state."
-