[MERGE] merge with parent branch
[odoo/odoo.git] / addons / purchase_requisition / test / purchase_requisition.yml
1 -
2   I create the procurement order and run that procurement.
3 -
4   !python {model: make.procurement}: |
5     context.update({'active_model':'product.product', 'active_ids': [ref('product.product_product_13')], 'active_id': ref('product.product_product_13')})
6 -
7   !record {model: make.procurement, id: procurement_product_hdd3}:
8     product_id: product.product_product_13
9     qty: 15
10     uom_id: product.product_uom_unit
11     warehouse_id: stock.stock_warehouse_shop0
12 -
13   !python {model: make.procurement}: |
14     self.make_procurement(cr, uid, [ref('procurement_product_hdd3')], context)
15 -
16   I run the scheduler.
17 -
18   !python {model: procurement.order}: |
19     self.run_scheduler(cr, uid)
20 -
21   I check requisition details which created after run procurement.
22 -
23   !python {model: procurement.order}: |
24     procurement_ids = self.search(cr, uid, [('requisition_id','!=', False)])
25     for procurement in self.browse(cr, uid, procurement_ids, context=context):
26         requisition = procurement.requisition_id
27         assert requisition.date_end == procurement.date_planned, "End date is not correspond."
28         assert len(requisition.line_ids) == 1, "Requisition Lines should be one."
29         line = requisition.line_ids[0]
30         assert line.product_id.id == procurement.product_id.id, "Product is not correspond."
31         assert line.product_uom_id.id == procurement.product_uom.id, "UOM is not correspond."
32         assert line.product_qty == procurement.product_qty, "Quantity is not correspond."
33 -
34   I open another requisition.
35 -
36   !python {model: purchase.requisition}: |
37     self.tender_in_progress(cr, uid, [ref("requisition1")], context=context)
38
39   Supplier send one RFQ so I create requisition request of that supplier.
40 -
41   !python {model: purchase.requisition.partner}: |
42     context.update({"active_model": "purchase.requisition","active_ids": [ref("requisition1")],"active_id": ref("requisition1")})
43
44   !record {model: purchase.requisition.partner, id: requisition_partner_0}:
45     partner_id: base.res_partner_12
46
47   !python {model: purchase.requisition.partner}: |
48     self.create_order(cr, uid, [ref("requisition_partner_0")], context=context)
49 -
50   I check that the RFQ details which created for supplier.
51 -
52   !python {model: purchase.order}: |
53     purchase_requisition = self.pool.get("purchase.requisition")
54     purchase_ids = self.search(cr, uid, [('requisition_id','=',ref("requisition1"))])
55     assert purchase_ids, "RFQ is not created."
56     rfq = self.browse(cr, uid, purchase_ids[0], context=context)
57     requisition = rfq.requisition_id
58     supplier = rfq.partner_id
59     assert supplier.id == ref('base.res_partner_12'), "RFQ Partner is not correspond."
60     assert len(rfq.order_line) == len(requisition.line_ids), "Lines are not correspond."
61     for rfq_line in rfq.order_line:
62         for line in requisition.line_ids:
63             if rfq_line.product_id.id == line.product_id.id:
64                 seller_price, qty, default_uom_po_id, date_planned = purchase_requisition._seller_details(cr, uid, line, supplier, context=context)
65                 assert rfq_line.product_qty == qty, "Quantity is not correspond."
66                 assert rfq_line.product_uom.id == default_uom_po_id, "UOM is not correspond."
67                 assert rfq_line.price_unit == seller_price, "Unit Price is not correspond."   
68 -
69   I confirmed RFQ which has best price.
70 -
71   !python {model: purchase.order}: |
72     import netsvc
73     wf_service = netsvc.LocalService("workflow")
74     purchase = self.browse(cr, uid, ref('rfq2'), context=context)
75     wf_service.trg_validate(uid, 'purchase.order', purchase.id, 'purchase_confirm', cr)
76
77 -
78   I check status of requisition after confirmed best RFQ.
79 -
80   !python {model: purchase.requisition}: |
81     requisition = self.browse(cr, uid, ref('requisition1'), context=context)
82     requisition.state == 'done', "Requisition should be closed."
83 -
84   I print a Requisition report
85
86   !python {model: purchase.requisition}: |
87     import netsvc, tools, os
88     (data, format) = netsvc.LocalService('report.purchase.requisition').create(cr, uid, [ref('purchase_requisition.requisition1')], {}, {})
89     if tools.config['test_report_directory']:
90         file(os.path.join(tools.config['test_report_directory'], 'purchase_requisition-purchase_requisition_report.'+format), 'wb+').write(data)