Meera Trambadia (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-sale_coverage-mtr into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-sale_coverage-mtr/+merge/73351
Sale, Sale_*:-Checked the various methods in yaml of sale and sale_* modules to
increase the coverage rate
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-sale_coverage-mtr/+merge/73351
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-sale_coverage-mtr.
=== modified file 'sale/__openerp__.py'
--- sale/__openerp__.py 2011-07-06 12:29:28 +0000
+++ sale/__openerp__.py 2011-08-30 10:17:39 +0000
@@ -89,6 +89,7 @@
'demo_xml': ['sale_demo.xml'],
'test': [
'test/data_test.yml',
+ 'test/invoice_on_ordered_qty.yml',
'test/manual_order_policy.yml',
'test/prepaid_order_policy.yml',
'test/picking_order_policy.yml',
@@ -96,9 +97,9 @@
'test/advance_invoice.yml',
'test/so_make_line_invoice.yml',
'test/sale_procurement.yml',
- 'test/invoice_on_ordered_qty.yml',
'test/invoice_on_shipped_qty.yml',
'test/sale_report.yml',
+ 'test/so_make_invoice.yml',
],
'installable': True,
'active': False,
=== modified file 'sale/test/advance_invoice.yml'
--- sale/test/advance_invoice.yml 2011-01-14 00:11:01 +0000
+++ sale/test/advance_invoice.yml 2011-08-30 10:17:39 +0000
@@ -104,6 +104,41 @@
so = self.browse(cr, uid, ref("sale_order_so5"))
assert so.invoice_ids[1], "Invoices has not been generated for sale_order_so5"
-
+ Then I cancel the invoice.
+-
+ !python {model: account.invoice}: |
+ import netsvc
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
+ 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_cancel', cr)
+-
+ I check that SO state is 'Invoice Exception'
+-
+ !python {model: sale.order}: |
+ sale_id = self.browse(cr, uid, ref("sale_order_so5"))
+ assert(sale_id.state == 'invoice_except'), "So state is not 'Invoice Exception'"
+-
+ Then I click on the Ignore Exception button
+-
+ !python {model: account.invoice}: |
+ import netsvc
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'sale.order',so.id,'invoice_corrected', cr)
+-
+ And then again I set the invoice to draft state
+-
+ !python {model: account.invoice}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','cancel')])
+ self.action_cancel_draft(cr, uid, invoice_id, ({'lang': 'en_US', 'tz': False, 'active_model': 'ir.ui.menu',
+ 'search_default_user_id': 1, 'active_ids': [ref("sale.menu_sale_order")], 'type': 'out_invoice', 'active_id': ref("sale.menu_sale_order")},))
+-
I open the Invoice for the SO.
-
!python {model: account.invoice}: |
=== modified file 'sale/test/invoice_on_ordered_qty.yml'
--- sale/test/invoice_on_ordered_qty.yml 2011-01-14 00:11:01 +0000
+++ sale/test/invoice_on_ordered_qty.yml 2011-08-30 10:17:39 +0000
@@ -1,5 +1,40 @@
-
In order to test the Sale module in OpenERP,
+ I first configure my Sales through config wizard and then
+-
+ I select my invoice policy through config wizard
+-
+ !record {model: sale.config.picking_policy, id: sale_config_picking_policy_01}:
+ name: False
+ sale_orders: 1
+ deli_orders: 1
+ task_work: 1
+ timesheet: 1
+ order_policy: 'manual'
+ charge_delivery: 1
+ time_unit: product.uom_day
+-
+ I select order policy
+-
+ !python {model: sale.config.picking_policy}: |
+ res = self.onchange_order(cr, uid, ref('sale_config_picking_policy_01'), 1, 1, context=None)
+ assert(res['value']['order_policy'] == 'manual')
+-
+ Then I click on the Next button and verify that modules has been installed as per the Invoicing policy
+-
+ !python {model: sale.config.picking_policy}: |
+ module = self.pool.get('ir.module.module')
+ self.execute(cr, uid, [ref("sale_config_picking_policy_01")], {'lang': u'en_US', 'project_id': False, 'tz': False,
+ 'active_model': 'ir.ui.menu', 'department_id': False,
+ 'section_id': False, 'active_ids': [ref("base.menu_ir_actions_todo_form")], 'active_id': ref("base.menu_ir_actions_todo_form")})
+ self.action_next(cr, uid, [ref("sale_config_picking_policy_01")], {'lang': u'en_US', 'active_ids': [ref("base.menu_ir_actions_todo_form")],
+ 'tz': False, 'active_model': 'ir.ui.menu', 'section_id': False, 'active_id': ref("base.menu_ir_actions_todo_form"),
+ 'project_id': False, 'department_id': False})
+ mod_install = module.search(cr, uid, [('name', 'in', ['project_timesheet', 'account_analytic_analysis', 'claim_from_delivery'])])
+ for mod in module.browse(cr, uid, mod_install):
+ assert(mod.state in ['to install','installed']), 'Modules are not installed'
+
+-
I create a Sale Order for Slider Mobile for 500 quantity having Shipping Policy 'Shipping & Manual Invoice' and Invoice on 'Ordered quantities'
in order to create an invoice based on the ordered quantity
-
@@ -37,6 +72,32 @@
so = self.browse(cr, uid, ref("sale_order_so9"))
assert so.picking_ids,"Picking has not been generated for sale_order_so9"
-
+ In order to cancel the SO, I first cancel its 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_so9"))
+ picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
+ if picking_id:
+ self.action_cancel(cr, uid, picking_id, context=None)
+-
+ Then I cancel Sale Order.
+-
+ !workflow {model: sale.order, action: cancel, ref: sale_order_so9}
+-
+ Then again I set the SO to draft sate.
+-
+ !python {model: sale.order}: |
+ so = self.browse(cr, uid, ref("sale_order_so9"))
+ self.action_cancel_draft(cr, uid, [ref("sale_order_so9")], ({'lang': u'en_US', 'tz': False, 'active_model': 'ir.ui.menu', 'department_id': False, 'section_id': False,
+ 'search_default_user_id': uid, 'active_ids': [ref("sale_order_so9")], 'active_id': ref("sale_order_so9")},))
+ assert so.state == 'draft', "Invoices has not been generated for sale_order_so9"
+-
+ I confirm the Sale Order again.
+-
+ !workflow {model: sale.order, action: order_confirm, ref: sale_order_so9}
+-
Then I confirm the picking
-
!record {model: stock.partial.picking, id: stock_partial_picking_0}:
=== modified file 'sale/test/manual_order_policy.yml'
--- sale/test/manual_order_policy.yml 2011-01-14 00:11:01 +0000
+++ sale/test/manual_order_policy.yml 2011-08-30 10:17:39 +0000
@@ -32,7 +32,14 @@
I click on Create Invoice button to create the invoice.
-
!workflow {model: sale.order, action: manual_invoice, ref: sale_order_so0}
-
+-
+ I verify that it opens Customer Invoices form view.
+-
+ !python {model: sale.order}: |
+ view_id = self.manual_invoice(cr, uid, [ref("sale_order_so0")], {'lang': u'en_US', 'tz': False, 'active_model': 'ir.ui.menu',
+ 'department_id': False, 'section_id': False, 'search_default_user_id': uid,
+ 'active_ids': [ref("sale_order_so0")], 'active_id': ref("sale_order_so0")})
+ assert view_id, "Customer Invoices form view has not opened."
-
I verify whether the invoice has been generated for SO
-
@@ -96,8 +103,21 @@
I verify that Paid has been set to true.
-
!python {model: sale.order}: |
+ obj = self.pool.get('sale.order')
sale_id=self.browse(cr, uid, ref("sale_order_so0"))
- assert(sale_id.invoiced == True), "Paid has not been set to true"
+ inv = self._invoiced_search(cr, uid, obj, 'invoiced', [('invoiced', '=', 1)], {'lang': u'en_US', 'project_id': False,
+ 'tz': False, 'active_model': 'ir.ui.menu', 'department_id': False, 'section_id': False,
+ 'search_default_user_id': uid, 'active_ids': [ref("sale.menu_sale_order")], 'active_id': ref("sale.menu_sale_order")})
+ assert((sale_id.invoiced == True) and (sale_id.id in inv[0][2])), "Paid has not been set to true"
+-
+ I verify that Invoiced Progessbar is 100%
+-
+ !python {model: sale.order}: |
+ invoiced_rate = self._invoiced_rate(cr, uid, [ref("sale_order_so0")], 'invoiced_rate', None, {'lang': u'en_US', 'tz': False, 'active_model': 'ir.ui.menu',
+ 'section_id': False, 'active_id': ref("sale_order_so0"), 'bin_size': True, 'search_default_user_id': uid,
+ 'active_ids': [ref("sale_order_so0")], 'department_id': False})
+ invoiced = invoiced_rate.values()
+ assert invoiced[0] == 100, "invoiced Progress bar is not 100%"
-
I verify that the picking has been generated for the sale order
-
@@ -314,6 +334,15 @@
so = self.browse(cr, uid, ref("sale_order_so0"))
assert (so.shipped == True), "Picked has not been set to True"
-
+ I verify that Picked Progessbar is 100%
+-
+ !python {model: sale.order}: |
+ picked_rate = self._picked_rate(cr, uid, [ref("sale_order_so0")], 'picked_rate', None, {'lang': u'en_US', 'tz': False, 'active_model': 'ir.ui.menu',
+ 'section_id': False, 'active_id': ref("sale_order_so0"), 'bin_size': True, 'search_default_user_id': uid,
+ 'active_ids': [ref("sale_order_so0")], 'department_id': False})
+ picked = picked_rate.values()
+ assert picked[0] == 100, "Picked Progress bar is not 100%"
+-
I verify that a sale order is in done state
-
!python {model: sale.order}: |
=== modified file 'sale/test/picking_order_policy.yml'
--- sale/test/picking_order_policy.yml 2011-01-14 00:11:01 +0000
+++ sale/test/picking_order_policy.yml 2011-08-30 10:17:39 +0000
@@ -6,25 +6,81 @@
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
+ shop_id: sale.shop
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 select the shop for my sale order
+-
+ !python {model: sale.order}: |
+ sale_id = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO007')])
+ res = self.pool.get('sale.order').onchange_shop_id(cr, uid, sale_id, ref('sale.shop'))
+ assert(res['value'])
+-
+ I select the partner for my sale order
+-
+ !python {model: sale.order}: |
+ sale_id = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO007')])
+ res = self.pool.get('sale.order').onchange_partner_id(cr, uid, sale_id, ref('sale.res_partner_cleartrail0'))
+ assert(res['value'])
+-
+ I create a packaging for my product
+-
+ !record {model: product.packaging, id: product_packaging_01}:
+ product_id: sale.product_product_slidermobile0
+ ul: product.product_ul_box
+ rows: 1
+-
+ I select the product for my sale order
+-
+ !python {model: sale.order}: |
+ import time
+ vals = {}
+ date = time.strftime('%Y-%m-%d')
+ sale_id = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO007')])
+ res = self.pool.get('sale.order.line').product_id_change(cr, uid, [], ref('product.list0'), ref('sale.product_product_slidermobile0'), qty=500.0,
+ uom=False, qty_uos=0, uos=False, name='', partner_id=ref('sale.res_partner_cleartrail0'),
+ lang=False, update_tax=True, date_order=date, packaging=False, fiscal_position=False, flag=False, context=None)
+ vals = {
+ 'name': 'Slider Mobile',
+ 'price_unit': 200.0,
+ 'product_uom': ref('product.product_uom_unit'),
+ 'product_uom_qty': 500.0,
+ 'state': 'draft',
+ 'delay': 7.0,
+ 'product_id': ref('sale.product_product_slidermobile0'),
+ 'product_uos_qty': 500.0,
+ 'th_weight': 0.0,
+ 'type': 'make_to_order',
+ 'order_id': sale_id[0],
+ 'product_packaging': ref('product_packaging_01')
+ }
+ line_id = self.pool.get('sale.order.line').create(cr, uid, vals)
+ assert line_id
+-
+ I select the product UoM
+-
+ !python {model: sale.order}: |
+ import time
+ date = time.strftime('%Y-%m-%d')
+ sale_id = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO007')])
+ ids = self.pool.get('sale.order.line').search(cr, uid, [('order_id', '=', sale_id),('name', '=', 'Slider Mobile')])
+ res = self.pool.get('sale.order.line').product_uom_change(cr, uid, ids, ref('product.list0'), ref('sale.product_product_slidermobile0'),
+ qty=500.0, uom=ref('product.product_uom_unit'), qty_uos=500, uos=False, name='Slider Mobile', partner_id=ref('sale.res_partner_cleartrail0'),
+ lang=False, update_tax=True, date_order=date, context=None)
+ assert res
+-
+ I select the shipping policy 'picking' for my sale order
+-
+ !python {model: sale.order}: |
+ ids = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO007')])
+ res = self.pool.get('sale.order').shipping_policy_change(cr, uid, ids, 'picking', context=None)
+ assert(res['value']['invoice_quantity'] == 'procurement')
-
I confirm the sale order.
-
=== modified file 'sale/test/so_make_invoice.yml'
--- sale/test/so_make_invoice.yml 2011-01-14 00:11:01 +0000
+++ sale/test/so_make_invoice.yml 2011-08-30 10:17:39 +0000
@@ -94,20 +94,19 @@
!python {model: account.invoice.line}: |
sale_order_obj = self.pool.get('sale.order')
acc_inv_obj = self.pool.get('account.invoice')
- inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
- inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
- assert inv_line, "Account invoice line has not been created"
+ inv_line1 = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile')])
+ inv_line2 = self.search(cr, uid, [('origin','=',so.name),('name','=','LG Viewty Smart')])
+ assert(inv_line1 and inv_line2), "Invoice lines has not been created"
-
I verify that an account invoice line with origin 'Test_SO003' is created
-
!python {model: account.invoice.line}: |
sale_order_obj = self.pool.get('sale.order')
acc_inv_obj = self.pool.get('account.invoice')
- inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
- assert inv_line, "Account invoice line has not been created"
+ inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile')])
+ assert(inv_line), "Invoice line has not been created"
-
I open the Invoice for the SO.
-
@@ -123,20 +122,38 @@
!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_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
- self.pay_and_reconcile(cr, uid, invoice_id,
- 40000.0, ref('account.cash'), ref('account.period_5'),
- ref('sale.account_journal_bankjournal0'), ref('account.cash'),
- ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
- name='tst')
--
- I verify the invoice is in Paid state
--
- !python {model: account.invoice}: |
- invoice_id = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|'),('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
+ I create account voucher to make payment and verify that invoice gets Paid
+-
+ !python {model: sale.order}: |
+ from tools.translate import _
+ import netsvc
+ inv_obj = self.pool.get('account.invoice')
+ vou_obj = self.pool.get('account.voucher')
+ modules = self.pool.get('ir.module.module')
+ mod_vou = modules.search(cr, uid, [('name','=','account_voucher')])
+ mod_brw = modules.browse(cr, uid, mod_vou)[0]
+ if(mod_brw.state == 'installed'):
+ vals = {}
+ journal_id = vou_obj.default_get(cr, uid, ['journal_id']).get('journal_id',None)
+ res = vou_obj.onchange_partner_id(cr, uid, [], ref("sale.res_partner_cleartrail0"), journal_id, 57000.0, 1, ttype='receipt', date=False)
+ vals = {
+ 'account_id': ref('account.cash'),
+ 'amount': 57000.0,
+ 'company_id': ref('base.main_company'),
+ 'currency_id': ref('base.EUR'),
+ 'journal_id': ref('account.bank_journal'),
+ 'partner_id': ref('sale.res_partner_cleartrail0'),
+ 'period_id': ref('account.period_8'),
+ 'type': 'receipt',
+ }
+ if not res['value']['line_cr_ids']:
+ res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
+ res['value']['line_cr_ids'][0]['amount'] = 57000.0
+ vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
+ id = vou_obj.create(cr, uid, vals)
+ voucher_id = vou_obj.browse(cr, uid, id)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
+ invoice_id = inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|'),('state','=','paid')])
+ assert invoice_id, "Invoice is not in paid state."
+-
\ No newline at end of file
=== modified file 'sale/test/so_make_line_invoice.yml'
--- sale/test/so_make_line_invoice.yml 2011-01-14 00:11:01 +0000
+++ sale/test/so_make_line_invoice.yml 2011-08-30 10:17:39 +0000
@@ -5,7 +5,7 @@
!record {model: sale.order, id: sale_order_so3}:
date_order: !eval time.strftime('%Y-%m-%d')
invoice_quantity: order
- name: Test_SO003
+ name: Test_SO017
order_line:
- name: Slider Mobile
sequence: 1
@@ -70,6 +70,19 @@
so = self.browse(cr, uid, ref("sale_order_so3"))
assert so.invoice_ids, "Invoices has not been generated for sale_order_so3"
-
+ I try to cancel the sale order line after creating an invoice and verifies that it gives a warning message
+-
+ !python {model: sale.order.line}: |
+ import netsvc
+ sale_id = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_so3"))
+ sol = sale_id.order_line[0]
+ try:
+ self.button_cancel(cr, uid, [sol.id], {"lang": "en_US", "project_id": False, "tz": False,
+ "active_model": "ir.ui.menu", "department_id": False, "section_id": False, "active_ids": [ref("sale.menu_invoicing_sales_order_lines")],
+ "search_default_uninvoiced": 1, "active_id": ref("sale.menu_invoicing_sales_order_lines")})
+ except Exception, e:
+ assert e, "Warning message has not been raised"
+-
I click on the Create button of invoice
-
!python {model: account.invoice}: |
@@ -120,6 +133,85 @@
sale_id=self.browse(cr, uid, ref("sale_order_so3"))
assert(sale_id.invoiced == True), "Paid has not been set to true"
-
+ Then I done the Stock move for sale order line
+-
+ !python {model: stock.move}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
+ picking_obj = self.pool.get('stock.picking')
+ ids = picking_obj.search(cr, uid, [('origin', '=', so.name),('type','=','out')])
+ for pick in picking_obj.browse(cr,uid, ids):
+ for move in pick.move_lines:
+ if move.name == 'Slider Mobile':
+ self.action_done(cr, uid, [move.id], context={'lang': u'en_US', 'search_default_Available': 1,
+ 'tz': False, 'active_model': 'ir.ui.menu', 'active_ids': [ref("stock.menu_action_move_form2")], 'active_id': ref("stock.menu_action_move_form2")})
+-
+ 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_so3"))
+ 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 click on the "Confirm" button to confirm the purchase order generated by procurement
+-
+ !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_so3"))
+ 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)
+-
+ Then I click on the "Products Received" button of Incoming Shipments
+-
+ !record {model: stock.partial.picking, id: stock_partial_picking_0}:
+ date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
+-
+ I click on the "Validate" button
+-
+ !python {model: stock.picking}: |
+ modules = self.pool.get('ir.module.module')
+ sale_order_obj = self.pool.get('sale.order')
+ pur_obj = self.pool.get('purchase.order')
+ mod_pur = modules.search(cr, uid, [('name','=','purchase')])
+ mod_brw = modules.browse(cr,uid,mod_pur)[0]
+ if (mod_brw.state == 'installed'):
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
+ pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
+ po = pur_obj.browse(cr, uid, pur_id)[0]
+ pick_ser_id = self.search(cr, uid, [('purchase_id', '=', po.id )])
+ import netsvc
+ wf_service = netsvc.LocalService("workflow")
+ for pick in pick_ser_id:
+ wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
+-
+ I click on the 'Done' button of sale order line
+-
+ !python {model: sale.order.line}: |
+ import netsvc
+ sale_id = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_so3"))
+ sol = sale_id.order_line[0]
+ self.button_done(cr, uid, [sol.id], {'lang': u'en_US', 'tz': False, 'active_model': 'ir.ui.menu',
+ 'active_ids': [ref("sale.menu_invoicing_sales_order_lines")], 'search_default_uninvoiced': 1, 'active_id': ref("sale.menu_invoicing_sales_order_lines")})
+-
+ I verify that sale order line state is now done
+-
+ !python {model: sale.order}: |
+ sale_id=self.browse(cr, uid, ref("sale_order_so3"))
+ sol = sale_id.order_line[0]
+ assert(sol.state == 'done'), "Sale order line state is not done"
+-
I create an invoice for another sale order line. I click on the "Make Invoice" button of sale order line
-
!record {model: sale.order.line.make.invoice, id: sale_order_line_make_invoice_1}:
=== modified file 'sale_crm/test/sale_crm.yml'
--- sale_crm/test/sale_crm.yml 2011-01-14 00:11:01 +0000
+++ sale_crm/test/sale_crm.yml 2011-08-30 10:17:39 +0000
@@ -19,6 +19,24 @@
-
Then I click on the 'Convert to Sale' wizard
-
+ I select partner
+-
+ !python {model: crm.make.sale}: |
+ crm_obj = self.pool.get('crm.lead')
+ crm = crm_obj.browse(cr, uid, ref("crm_lead_opportunity0"))
+ partner = self._selectPartner(cr, uid, {'lang': 'en_US', 'tz': False, 'active_model': 'crm.lead', 'active_ids': [crm.id], 'tz': False, 'active_id': crm.id})
+ assert partner == (11, u'Distrib PC'), "Incorrect partner"
+-
+ I select shop
+-
+ !python {model: crm.make.sale}: |
+ crm_obj = self.pool.get('crm.lead')
+ crm = crm_obj.browse(cr, uid, ref("crm_lead_opportunity0"))
+ sale_id = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO007')])
+ shop = self._get_shop_id(cr, uid, {'lang': 'en_US', 'tz': False, 'active_model': 'crm.lead',
+ 'active_ids': [crm.id], 'tz': False, 'active_id': crm.id}, None)
+ assert shop, "Incorrect shop"
+-
I place a sale order for product keyboard having quantity 50
-
!record {model: crm.make.sale, id: crm_make_sale_0}:
=== modified file 'sale_margin/test/sale_margin.yml'
--- sale_margin/test/sale_margin.yml 2011-01-14 00:11:01 +0000
+++ sale_margin/test/sale_margin.yml 2011-08-30 10:17:39 +0000
@@ -28,6 +28,17 @@
pricelist_id: product.list0
shop_id: sale.shop
-
+ I select the product for my sale order
+-
+ !python {model: sale.order}: |
+ import time
+ date = time.strftime('%Y-%m-%d')
+ sale_id = self.pool.get('sale.order').search(cr, uid, [('name', '=', 'Test_SO011')])
+ res = self.pool.get('sale.order.line').product_id_change(cr, uid, [], ref('product.list0'), ref('product.product_product_24'), qty=500.0,
+ uom=False, qty_uos=0, uos=False, name='', partner_id=ref('base.res_partner_4'),
+ lang=False, update_tax=True, date_order=date, packaging=False, fiscal_position=False, flag=False, context=None)
+ assert(res and res['value']['purchase_price'] == 5.0)
+-
I confirm the sale order
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so11}
=== modified file 'sale_mrp/test/sale_mrp.yml'
--- sale_mrp/test/sale_mrp.yml 2011-01-14 00:11:01 +0000
+++ sale_mrp/test/sale_mrp.yml 2011-08-30 10:17:39 +0000
@@ -124,7 +124,8 @@
so = self.browse(cr, uid, ref("sale_order_so0"))
mnf_obj=self.pool.get('mrp.production')
mnf_id=mnf_obj.search(cr, uid, [('origin','=',so.name)])
- assert mnf_id, _('Manufacturing order has not been generated')
+ res = mnf_obj._ref_calc(cr, uid, mnf_id, ['sale_ref', 'sale_name'], False, None)
+ assert (mnf_id and res), _('Manufacturing order has not been generated')
-
I verify that a 'Sale Name' field of Manufacturing order gets bind with the value
-
_______________________________________________
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