From 25a47e03862907daee7c3d0e2d6a2a7fd15f696b Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Wed, 9 Nov 2011 16:07:38 +0530 Subject: [PATCH] [MOVE,IMP] sale: Move picking_order_policy.yml in to process/get_picking_details.yml improve it's test cases bzr revid: dbr@tinyerp.com-20111109103738-9ib6ikpci8zjysav --- addons/sale/__openerp__.py | 4 +- addons/sale/test/picking_order_policy.yml | 264 ------------------ .../sale/test/process/get_picking_details.yml | 14 + 3 files changed, 16 insertions(+), 266 deletions(-) delete mode 100644 addons/sale/test/picking_order_policy.yml create mode 100644 addons/sale/test/process/get_picking_details.yml diff --git a/addons/sale/__openerp__.py b/addons/sale/__openerp__.py index 7ee3b62138d..5b241dfd031 100644 --- a/addons/sale/__openerp__.py +++ b/addons/sale/__openerp__.py @@ -86,10 +86,10 @@ Dashboard for Sales Manager that includes: ], 'demo_xml': ['sale_demo.xml'], 'test': [ - 'test/ui/configuration_method.yml', + 'test/ui/execute_config.yml', 'test/process/order_policy.yml', + 'test/process/get_picking_details.yml', 'test/process/cancel_order.yml', - #'test/so_make_line_invoice.yml', #'test/sale_procurement.yml', 'test/ui/onchage_events.yml', 'test/ui/sale_make_invoice.yml', diff --git a/addons/sale/test/picking_order_policy.yml b/addons/sale/test/picking_order_policy.yml deleted file mode 100644 index 1dcbf980da4..00000000000 --- a/addons/sale/test/picking_order_policy.yml +++ /dev/null @@ -1,264 +0,0 @@ -- - In order to test the Sale module in OpenERP, - I create a Sale Order for Slider Mobile for qty 500 having Shipping Policy is 'Invoice from Picking' -- - !record {model: sale.order, id: sale_order_so7}: - date_order: !eval time.strftime('%Y-%m-%d') - invoice_quantity: order - name: Test_SO007 - order_line: - - name: Slider Mobile - price_unit: 200 - product_uom: product.product_uom_unit - product_uom_qty: 500.0 - state: draft - delay: 7.0 - product_id: sale.product_product_slidermobile0 - product_uos_qty: 500.0 - th_weight: 0.0 - type: make_to_order - order_policy: picking - partner_id: sale.res_partner_cleartrail0 - partner_invoice_id: sale.res_partner_address_2 - partner_order_id: sale.res_partner_address_1 - partner_shipping_id: sale.res_partner_address_3 - picking_policy: direct - pricelist_id: product.list0 - shop_id: sale.shop -- - I confirm the sale order. -- - !workflow {model: sale.order, action: order_confirm, ref: sale_order_so7} -- - I verify that picking has been generated for the sale order. -- - !python {model: sale.order}: | - so = self.browse(cr, uid, ref("sale_order_so7")) - assert so.picking_ids,"Picking has not been generated for sale_order_so7" -- - 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_so7")) - 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) - stock_partial_picking = self.pool.get('stock.partial.picking') - partial_id = stock_partial_picking.create(cr, uid, {}, - context={'active_model': 'stock.picking', - 'active_ids': [pick.id]}) - stock_partial_picking.do_partial(cr, uid, [partial_id]) -- - Then I click on 'Create Invoices' button -- - !python {model: stock.invoice.onshipping}: | - import time - sale_obj=self.pool.get('sale.order') - sale_id=sale_obj.browse(cr, uid, ref("sale_order_so7")) - ids = [x.id for x in sale_id.picking_ids] - wiz_id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-%m-%d'), 'journal_id': ref('account.sales_journal')}, - {'active_ids': ids, 'active_model': 'stock.picking'}) - self.create_invoice(cr, uid, [wiz_id], {"active_ids": ids, "active_id": ids[0]}) -- - I check that an invoice has been created. -- - !python {model: sale.order}: | - sale_id=self.browse(cr, uid, ref("sale_order_so7")) - assert(sale_id.invoice_ids), "Invoice has not been created" -- - I open the Invoice for the SO. -- - !python {model: account.invoice}: | - sale_order_obj = self.pool.get('sale.order') - so = sale_order_obj.browse(cr, uid, ref("sale_order_so7")) - import netsvc - wf_service = netsvc.LocalService("workflow") - invoice_ids = so.invoice_ids - for invoice in invoice_ids: - wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr) -- - Assign analytic journal into bank journal -- - !record {model: account.journal, id: sale.account_journal_bankjournal0}: - analytic_journal_id: account.cose_journal_sale -- - I pay the invoice -- - !python {model: account.invoice}: | - sale_order_obj = self.pool.get('sale.order') - so = sale_order_obj.browse(cr, uid, ref("sale_order_so7")) - invoice_id = self.search(cr, uid, [('origin','like',so.name),('state','=','open')]) - self.pay_and_reconcile(cr, uid, invoice_id, - 255000.0, ref('account.cash'), ref('account.period_8'), - ref('sale.account_journal_bankjournal0'), ref('account.cash'), - ref('account.period_8'), ref('sale.account_journal_bankjournal0'), - name='test') -- - I verify the invoice is in paid state. -- - !python {model: account.invoice}: | - sale_order_obj = self.pool.get('sale.order') - so = sale_order_obj.browse(cr, uid, ref("sale_order_so7")) - invoice_ids = so.invoice_ids - for invoice in invoice_ids: - assert (invoice.state) =='paid', "Invoice for SO is not in done state." -- - I check that Paid has been set to true. -- - !python {model: sale.order}: | - sale_id=self.browse(cr, uid, ref("sale_order_so7")) - assert(sale_id.invoiced == True), "Paid has not been set to true" -- - I verify that a procurement has been generated for so -- - !python {model: procurement.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, _('No Procurements!') -- - Then I click on the "Run Procurement" button -- - !python {model: procurement.order}: | - sale_order_obj = self.pool.get('sale.order') - so = sale_order_obj.browse(cr, uid, ref("sale_order_so7")) - import netsvc - wf_service = netsvc.LocalService("workflow") - proc_ids = self.search(cr, uid, [('origin','=',so.name)]) - for proc in proc_ids: - wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr) -- - I verify that a procurement state is "running" -- - !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] - if (mod_brw.state == '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),('state','=','running')]) - assert proc_ids, _('Procurement is not in the running state!') -- - I verify that a purchase order has been generated -- - !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] - if (mod_brw.state == 'installed'): - 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: 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] - if (mod_brw.state == 'installed'): - 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 = 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: 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] - if (mod_brw.state == 'installed'): - 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 = 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 and I process it -- - !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] - if (mod_brw.state == 'installed'): - 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" - picking, = po.picking_ids - stock_partial_picking = self.pool.get('stock.partial.picking') - partial_id = stock_partial_picking.create(cr, uid, {}, - context={'active_model': 'stock.picking', - 'active_ids': [picking.id]}) - stock_partial_picking.do_partial(cr, uid, [partial_id]) -- - I verify that picking for purchase order has been done. -- - !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] - if (mod_brw.state == 'installed'): - 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 ),('state', '=', 'done')]) - assert ids, _('Picking is not in the done state!') -- - I verify that delivery order has been generated for sale order, and process it -- - !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)]) - assert (picking_id),"Delivery order has not been generated" - pick=self.browse(cr,uid,picking_id[0]) - pick.force_assign(cr, uid) - stock_partial_picking = self.pool.get('stock.partial.picking') - partial_id = stock_partial_picking.create(cr, uid, {}, - context={'active_model': 'stock.picking', - 'active_ids': [pick.id]}) - stock_partial_picking.do_partial(cr, uid, [partial_id]) -- - 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)]) - 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 the sale order is marked as delivered -- - !python {model: sale.order}: | - so = self.browse(cr, uid, ref("sale_order_so7")) - 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_so7")) - assert (so.state == 'done'), "Sale order is not in the done state." - diff --git a/addons/sale/test/process/get_picking_details.yml b/addons/sale/test/process/get_picking_details.yml new file mode 100644 index 00000000000..7163e9a6e9a --- /dev/null +++ b/addons/sale/test/process/get_picking_details.yml @@ -0,0 +1,14 @@ +- + In order to get the picking details for related sale order. +- + !python {model: stock.picking}: | + order = self.pool.get('sale.order').browse(cr, uid, ref("order2")) + self.get_currency_id(cr, uid, order.picking_ids[0]) + self._get_payment_term(cr, uid, order.picking_ids[0]) + self._get_address_invoice(cr, uid, order.picking_ids[0]) + self._get_comment_invoice(cr, uid, order.picking_ids[0]) + for move in order.picking_ids[0].move_lines: + self._get_price_unit_invoice(cr, uid, move, 'out_invoice') + self._get_discount_invoice(cr, uid, move) + self._get_taxes_invoice(cr, uid, move, 'out_invoice') + self._get_account_analytic_invoice(cr, uid, order.picking_ids[0], move)