Files
manufacture/mrp_production_properties/test/mrp_production_properties.yml

111 lines
4.1 KiB
YAML

-
In order to test the mrp_production_properties,
I start by creating a new product 'Slider Mobile'
-
I create a product Slider Mobile
-
!record {model: product.product, id: product_product_slidermobile0}:
categ_id: product.product_category_1
list_price: 200.0
name: Slider Mobile
procure_method: make_to_order
standard_price: 189.0
supply_method: produce
type: product
uom_id: product.product_uom_unit
uom_po_id: product.product_uom_unit
-
I create a Property Group named SM
-
!record {model: mrp.property.group, id: mrp_property_group_slidermobile}:
name: SM
-
I create the property 'QWERTY Slider Mobile Phone' belongs to SM Property Group
-
!record {model: mrp.property, id: mrp_property_slidermobile}:
name: QWERTY Slider Mobile Phone
group_id: mrp_property_group_slidermobile
composition: min
-
I create a Bill of Material record for Slider Mobile
-
!record {model: mrp.bom, id: mrp_bom_slidermobile0}:
company_id: base.main_company
name: Slider Mobile
product_efficiency: 1.0
product_id: product_product_slidermobile0
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 0.0
sequence: 0.0
type: normal
-
I create a sale order for product Slider mobile
-
!record {model: sale.order, id: sale_order_so0}:
client_order_ref: ref1
date_order: !eval time.strftime('%Y-%m-%d')
invoice_quantity: order
name: Test_SO001
order_policy: manual
partner_id: base.res_partner_4
partner_invoice_id: base.res_partner_address_7
partner_shipping_id: base.res_partner_address_7
picking_policy: direct
pricelist_id: product.list0
shop_id: sale.sale_shop_1
-
In the sale order I add one sale order line containing the Property 'QWERTY Slider Mobile Phone'
-
!record {model: sale.order.line, id: line}:
name: Slider Mobile
product_id: product_product_slidermobile0
product_uom_qty: 500.0
product_uom: 1
price_unit: 200
order_id: sale_order_so0
type: make_to_order
property_ids:
- mrp_property_slidermobile
-
I confirm the sale order
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so0}
-
I verify that a procurement has been generated for sale order
-
!python {model: procurement.order}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
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_so0"))
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}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
assert proc_ids, 'Procurement is not in the running state!'
-
I verify that a manufacturing order has been generated, and its properties are matching with those on the sale order line
-
!python {model: sale.order}: |
mnf_obj = self.pool.get('mrp.production')
so = self.browse(cr, uid, ref("sale_order_so0"))
mnf_id = mnf_obj.search(cr, uid, [('origin','=',so.name)])
assert mnf_id, 'Manufacturing order has not been generated'
mo = mnf_obj.browse(cr, uid, mnf_id)[0]
assert len(mo.property_ids) == 1 and mo.property_ids[0].name == so.order_line[0].property_ids[0].name, 'The property defined on the MO and the SO do not match.'