Devishree Brahmbhatt (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-coverage-procurement-dbr into 
lp:openobject-addons.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-coverage-procurement-dbr/+merge/85823

Hello,

Improve the test cases for procurement module.
Done the changes as follows:

=> Add new test folder
=> Add two files
   -> Procurement.yml
      - Define the normal process flow of procurement module.
   -> all_schedular.yml
      - Define the process flow of wizard.
=> Commented a class 'StockPicking' from procurement.py.

So, kindly review it.
Thanks.
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-coverage-procurement-dbr/+merge/85823
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-coverage-procurement-dbr.
=== modified file 'procurement/__openerp__.py'
--- procurement/__openerp__.py	2011-12-12 14:22:44 +0000
+++ procurement/__openerp__.py	2011-12-15 10:11:28 +0000
@@ -59,6 +59,9 @@
         'board_mrp_procurement_view.xml',
     ],
     'demo_xml': ['stock_orderpoint.xml'],
+    'test': ['test/procurement.yml',
+             #'test/all_schedular.yml'
+            ],
     'installable': True,
     'active': False,
     'certificate': '00954248826881074509',

=== modified file 'procurement/procurement.py'
--- procurement/procurement.py	2011-12-07 14:58:54 +0000
+++ procurement/procurement.py	2011-12-15 10:11:28 +0000
@@ -61,20 +61,6 @@
     }
 mrp_property()
 
-class StockMove(osv.osv):
-    _inherit = 'stock.move'
-
-    _columns= {
-        'procurements': fields.one2many('procurement.order', 'move_id', 'Procurements'),
-    }
-
-    def copy(self, cr, uid, id, default=None, context=None):
-        default = default or {}
-        default['procurements'] = []
-        return super(StockMove, self).copy(cr, uid, id, default, context=context)
-
-StockMove()
-
 class procurement_order(osv.osv):
     """
     Procurement Orders
@@ -471,22 +457,21 @@
         return res
 
 procurement_order()
-
-class StockPicking(osv.osv):
-    _inherit = 'stock.picking'
-
-    def test_finished(self, cursor, user, ids):
-        wf_service = netsvc.LocalService("workflow")
-        res = super(StockPicking, self).test_finished(cursor, user, ids)
-        for picking in self.browse(cursor, user, ids):
-            for move in picking.move_lines:
-                if move.state == 'done' and move.procurements:
-                    for procurement in move.procurements:
-                        wf_service.trg_validate(user, 'procurement.order',
-                                procurement.id, 'button_check', cursor)
-        return res
-
-StockPicking()
+# Dead Code
+# =========
+#class StockPicking(osv.osv):
+#    _inherit = 'stock.picking'
+#    def test_finished(self, cursor, user, ids):
+#        wf_service = netsvc.LocalService("workflow")
+#        res = super(StockPicking, self).test_finished(cursor, user, ids)
+#        for picking in self.browse(cursor, user, ids):
+#            for move in picking.move_lines:
+#                if move.state == 'done':
+#                    for procurement in move.procurements:
+#                        wf_service.trg_validate(user, 'procurement.order',
+#                                procurement.id, 'button_check', cursor)
+#        return res
+#StockPicking()
 
 class stock_warehouse_orderpoint(osv.osv):
     """

=== added directory 'procurement/test'
=== added file 'procurement/test/all_schedular.yml'
--- procurement/test/all_schedular.yml	1970-01-01 00:00:00 +0000
+++ procurement/test/all_schedular.yml	2011-12-15 10:11:28 +0000
@@ -0,0 +1,53 @@
+-
+  For test the procurement module, First I have to update  quantity.
+-
+  !python {model: product.product}: |
+    product = self.browse(cr, uid, ref('product.product_product_pc2'))
+    assert product.virtual_available >= 0.0,'Virtual stock have more quantities than zero.'
+-
+  I create minimum stock rule for product PC2.
+-
+  !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}:
+    company_id: base.main_company
+    location_id: stock.stock_location_stock
+    logic: max
+    name: OP/000008
+    product_id: product.product_product_pc2
+    product_max_qty: 15.0
+    product_min_qty: 1.0
+    product_uom: product.product_uom_kgm
+    qty_multiple: 1
+    warehouse_id: stock.warehouse0
+-
+  I run the scheduler.
+-
+  !python {model: product.product}: |
+    mk_procure = self.pool.get('make.procurement')
+    procur_order = self.pool.get('procurement.order')
+    product = self.browse(cr, uid, ref('product.product_product_pc2'))
+    
+    context.update({'active_model': 'product.product','active_id':ref('product.product_product_pc2')})
+    values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context)
+    values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 1})
+    ids = mk_procure.create(cr, uid, values, context)
+    procurement = mk_procure.make_procurement(cr, uid, [ids], context)
+    
+    assert product.virtual_available >= 1.0,'Virtual stock should be updated'
+    
+    proc_id = procurement.get('res_id')
+    procurements = procur_order.browse(cr, uid, [proc_id])[0]
+    assert procurements.product_id.id == ref('product.product_product_pc2'),"Product is not correspond."
+    assert procurements.product_qty >= 1,"Product Quantity is not correspond."
+    assert procurements.state == 'confirmed',"Procurement state should be 'Confirmed'."
+    assert procurements.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond."
+    context.update({'proc': proc_id})
+-
+  I Compute Minimum Stock.
+-
+  !python {model: procurement.orderpoint.compute}: |
+    proc_id = context.get('proc')
+    context.update({'active_model':'procurement.order','active_id':proc_id})
+    values = self.default_get(cr, uid, ['automatic'], context)
+    values.update({'automatic':True})
+    ids = self.create(cr, uid, values, context)
+    self.procure_calculation(cr, uid, [ids], context)

=== added file 'procurement/test/procurement.yml'
--- procurement/test/procurement.yml	1970-01-01 00:00:00 +0000
+++ procurement/test/procurement.yml	2011-12-15 10:11:28 +0000
@@ -0,0 +1,94 @@
+-
+  For test the procurement module, First I have to check current product quantity.
+-
+  !python {model: product.product}: |
+    product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+    assert product.virtual_available <= 0.0,'Virtual stock have more quantities. so, not possible to check minimum stock rule process'
+-
+  I create minimum stock rule for product CPU2.
+-
+  !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}:
+    company_id: base.main_company
+    location_id: stock.stock_location_stock
+    logic: max
+    name: OP/00008
+    product_id: product.product_product_cpu2
+    product_max_qty: 15.0
+    product_min_qty: 5.0
+    product_uom: product.product_uom_kgm
+    qty_multiple: 1
+    warehouse_id: stock.warehouse0
+-
+  I update product quantity and check the stock moves are properly done or not.
+-
+  !python {model: product.product}: |
+    change_qty = self.pool.get('stock.change.product.qty')
+    product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+    ids = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id})
+    change_qty.change_product_qty(cr, uid, [ids], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]})
+    assert product.qty_available == 4,"Product quantity is not updated."
+-
+  I run the scheduler.
+-
+  !python {model: procurement.order}: |
+    self.run_scheduler(cr, uid)
+-
+  I check that procurement order created.
+-
+  !python {model: procurement.order}: |
+    proc_ids = self.search(cr, uid, [('product_id','=', ref('product.product_product_cpu2'))])
+    assert proc_ids, 'No Procurement created.'
+    proc_order = self.browse(cr, uid, proc_ids)[0]
+    assert proc_order.product_qty == 11.0,"Procurement product quantity is not corresponded."
+-
+  I check product quantity.
+-
+  !python {model: product.product}: |
+    product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+    assert product.virtual_available == 15.0,"After run the scheduler product's virtual stock is not updated."
+-
+  For test the Procurement Request wizard, Again I have to update product quantity.
+-
+  !python {model: product.product}: |
+    mk_procure = self.pool.get('make.procurement')
+    procur_order = self.pool.get('procurement.order')
+    product = self.browse(cr, uid, ref('product.product_product_cpu2'))
+
+    context.update({'active_model': 'product.product','active_id':ref('product.product_product_cpu2')})
+    values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context)
+    values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5})
+
+    ids = mk_procure.create(cr, uid, values, context)
+    procurement = mk_procure.make_procurement(cr, uid, [ids], context)
+    assert product.virtual_available == 20.0,'Virtual stock should be updated'
+
+    proc_id = procurement.get('res_id')
+    for procurement in procur_order.browse(cr, uid, [proc_id]):
+      if procurement.state == 'confirmed':
+        assert procurement.state == 'confirmed',"Procurement state should be 'Confirmed'."
+        assert procurement.product_id.id == ref('product.product_product_cpu2'),"Product is not correspond."
+        assert procurement.product_qty == 5,"Product Quantity is not correspond."
+        assert procurement.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond."
+    context.update({'proc': proc_id})
+-
+  I run the scheduler.
+-
+  !python {model: procurement.order}: |
+    self.run_scheduler(cr, uid)
+-
+  I check the current state of procurement.
+-
+  !python {model: procurement.order}: |
+    proc_id = context.get('proc')
+    proc = self.browse(cr, uid, [proc_id])[0]
+    assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state"
+-
+  I compute minimum stock .
+-
+  !python {model: procurement.orderpoint.compute}: |
+    proc_id = context.get('proc')
+    context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True})
+    values = self.default_get(cr, uid, ['automatic'], context)
+    ids = self.create(cr, uid, values, context)
+    self.procure_calculation(cr, uid, [ids], context)
+

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to