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

Reply via email to