[AAD]purchase_requisition: add yml purchase_requisition_test.yml for cover more...
authorAtik Agewan (OpenERP) <aag@tinyerp.com>
Tue, 19 Jul 2011 05:45:33 +0000 (11:15 +0530)
committerAtik Agewan (OpenERP) <aag@tinyerp.com>
Tue, 19 Jul 2011 05:45:33 +0000 (11:15 +0530)
bzr revid: aag@tinyerp.com-20110719054533-64qd1znwp3opsqc2

addons/purchase_requisition/__openerp__.py
addons/purchase_requisition/test/purchase_requisition_test.yml [new file with mode: 0755]

index 5fd224b..7e15c58 100644 (file)
@@ -42,7 +42,9 @@ This new object will regroup and will allow you to easily keep track and order a
                     "security/ir.model.access.csv","purchase_requisition_sequence.xml"
     ],
     "active": False,
-    "test":['test/purchase_requisition_report.yml'],
+    "test":['test/purchase_requisition_report.yml',
+            'test/purchase_requisition_test.yml',
+            ],
     "installable": True,
     "certificate" : "001023264099823179629",
 }
diff --git a/addons/purchase_requisition/test/purchase_requisition_test.yml b/addons/purchase_requisition/test/purchase_requisition_test.yml
new file mode 100755 (executable)
index 0000000..3cc0a4b
--- /dev/null
@@ -0,0 +1,174 @@
+-
+  In order to test the purchase requisition flow,I start by creating a new product 'MOB1'
+- 
+  !record {model: product.product, id: product_product_mob1}:
+    name: MOB1
+    categ_id: product.product_category_3
+    cost_method: standard
+    mes_type: fixed
+    price_margin: 2.0
+    procure_method: make_to_stock
+    property_stock_inventory: stock.location_inventory
+    property_stock_procurement: stock.location_procurement
+    property_stock_production: stock.location_production
+    seller_delay: '1'
+    standard_price: 2000.0
+    supply_method: buy
+    type: product
+    uom_id: product.product_uom_unit
+    uom_po_id: product.product_uom_unit
+    volume: 0.0
+    warranty: 0.0
+    weight: 0.0
+    weight_net: 0.0
+- 
+  I create purchase requisition for MOB1 for 1 quantity.
+- 
+  !record {model: purchase.requisition, id: purchase_requisition_te0}:
+    company_id: base.main_company
+    exclusive: multiple
+    line_ids:
+      - company_id: base.main_company
+        product_id: product_product_mob1
+        product_qty: 10.0
+        product_uom_id: product.product_uom_unit
+    name: TE00009
+- 
+  Initially purchase requisition is in draft state.
+-
+  !assert {model: purchase.requisition, id: purchase_requisition_te0}:
+    - state == 'draft'  
+- 
+  I confirm the purchase requisition for MOB1.
+- 
+  !python {model: purchase.requisition}: |
+    self.tender_in_progress(cr, uid, [ref("purchase_requisition_te0")])
+-
+  I check that the purchase requisition which was initially in the draft state has transmit to In Progress after confirm it.
+-
+  !assert {model: purchase.requisition, id: purchase_requisition_te0}:
+    - state == 'in_progress'
+- 
+   I Create a Purchase Order for the supplier 'Axelor'.
+- 
+  !record {model: purchase.requisition.partner, id: purchase_requisition_partner_0}:
+    partner_address_id: base.res_partner_address_7
+    partner_id: base.res_partner_desertic_hispafuentes
+- 
+  I create Quotations For supplier 'Axelor'.
+- 
+  !python {model: purchase.requisition.partner}: |
+    self.create_order(cr, uid, [ref("purchase_requisition_partner_0")], {"active_model": "purchase.requisition",
+      "active_ids": [ref("purchase_requisition_te0")],"active_id": ref("purchase_requisition_te0"), })
+-
+  I confirm the purchase order of Axelor.
+-
+  !python {model: purchase.order}: |
+    req_obj = self.pool.get('purchase.requisition')
+    ids =req_obj.search(cr, uid, [('name','=','TE00009')])    
+    purchase_id= self.search(cr, uid, [('requisition_id','in',ids)])
+    import netsvc
+    wf_service = netsvc.LocalService("workflow")   
+    if purchase_id:
+      wf_service.trg_validate(uid, 'purchase.order',purchase_id[0],'purchase_confirm', cr)
+      wf_service.trg_validate(uid, 'purchase.order',purchase_id[0],'purchase_approve', cr)
+-
+  I check that Quotation of Axelor is Approved.
+-        
+  !python {model: purchase.order}: |
+   req_obj = self.pool.get('purchase.requisition')
+   ids =req_obj.search(cr, uid,[('name','=','TE00009')])     
+   purchase_id= self.search(cr, uid, [('requisition_id','in',ids)])[0]
+   state=self.browse(cr,uid,purchase_id).state
+   assert (state=='approved')
+- 
+  I click on Done button
+- 
+  !python {model: purchase.requisition}: |
+    self.tender_done(cr, uid, [ref("purchase_requisition_te0")],)
+-
+  I check that after click on Done button state is in done.
+-
+  !assert {model: purchase.requisition, id: purchase_requisition_te0}:
+    - state == 'done'
+-
+  In order to test the purchase requisition flow for Requisition Type is exclusive 
+- 
+  I create purchase requisition for Requisition Type is exclusive 
+- 
+  !record {model: purchase.requisition, id: purchase_requisition_ex1}:
+    company_id: base.main_company
+    exclusive: exclusive
+    line_ids:
+      - company_id: base.main_company
+        product_id: product_product_mob1
+        product_qty: 10.0
+        product_uom_id: product.product_uom_unit
+    name: TE000010
+- 
+   I Create a First Purchase Order for the supplier 'DistriPC'.
+- 
+  !record {model: purchase.requisition.partner, id: purchase_requisition_partner_1}:
+    partner_address_id: base.res_partner_address_7
+    partner_id: base.res_partner_4
+- 
+  I create Quotations For supplier 'DistriPC'.
+- 
+  !python {model: purchase.requisition.partner}: |
+    self.create_order(cr, uid, [ref("purchase_requisition_partner_1")], {"active_model": "purchase.requisition",
+      "active_ids": [ref("purchase_requisition_ex1")],"active_id": ref("purchase_requisition_ex1"), })    
+- 
+   I Create a Second Purchase Order for the supplier ASUStek.
+- 
+  !record {model: purchase.requisition.partner, id: purchase_requisition_partner_2}:
+    partner_address_id: base.res_partner_address_7
+    partner_id: base.res_partner_asus
+- 
+  I create Quotations For supplier 'ASUStek'.
+- 
+  !python {model: purchase.requisition.partner}: |
+    self.create_order(cr, uid, [ref("purchase_requisition_partner_2")], {"active_model": "purchase.requisition",
+      "active_ids": [ref("purchase_requisition_ex1")],"active_id": ref("purchase_requisition_ex1"), })
+- 
+  I check that Initially purchase requisition is draft state.
+-
+  !assert {model: purchase.requisition, id: purchase_requisition_ex1}:
+    - state == 'draft'  
+-
+  I confirm the Second purchase order of ASUStek.
+-
+  !python {model: purchase.order}: |
+    partner_id=self.pool.get('res.partner').search(cr,uid,[('name','=','ASUStek')])[0]
+    req_obj = self.pool.get('purchase.requisition')
+    ids =req_obj.search(cr, uid, [('name','=','TE000010')])    
+    purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])
+    import netsvc
+    wf_service = netsvc.LocalService("workflow")   
+    if purchase_id:
+      wf_service.trg_validate(uid, 'purchase.order',purchase_id[0],'purchase_confirm', cr)
+      wf_service.trg_validate(uid, 'purchase.order',purchase_id[0],'purchase_approve', cr)
+-
+  I check that Quotation of ASUStek is Approved.
+-        
+  !python {model: purchase.order}: |
+   partner_id=self.pool.get('res.partner').search(cr,uid,[('name','=','ASUStek')])[0]
+   req_obj = self.pool.get('purchase.requisition')
+   ids =req_obj.search(cr, uid,[('name','=','TE000010')])     
+   purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])[0]
+   state=self.browse(cr,uid,purchase_id).state
+   assert (state=='approved')
+-
+  I check that Quotation of DistriPC is cancelled.
+-        
+  !python {model: purchase.order}: |
+   partner_id=self.pool.get('res.partner').search(cr,uid,[('name','=','Distrib PC')])[0]
+   req_obj = self.pool.get('purchase.requisition')
+   ids =req_obj.search(cr, uid,[('name','=','TE000010')])     
+   purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])[0]
+   state=self.browse(cr,uid,purchase_id).state
+   assert (state=='cancel')
+-
+  I check that Purchase Requisition is Done.
+-
+  !assert {model: purchase.requisition, id: purchase_requisition_ex1}:
+    - state == 'done'
\ No newline at end of file