mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
55 lines
2.2 KiB
Python
55 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# © 2015 Avanzosc
|
|
# © 2015 Pedro M. Baeza - Antiun Ingeniería
|
|
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
import openerp.tests.common as common
|
|
from openerp.exceptions import Warning as UserError
|
|
|
|
|
|
class TestMrpHook(common.TransactionCase):
|
|
def setUp(self):
|
|
super(TestMrpHook, self).setUp()
|
|
self.product_model = self.env['product.product']
|
|
self.product = self.product_model.create({'name': 'Test product'})
|
|
self.raw_product = self.product_model.create({'name': 'Raw product'})
|
|
self.bom = self.env['mrp.bom'].create(
|
|
{
|
|
'name': self.product.name,
|
|
'product_id': self.product.id,
|
|
'product_tmpl_id': self.product.product_tmpl_id.id,
|
|
'bom_line_ids': [
|
|
(0, 0, {'product_id': self.raw_product.id,
|
|
'type': 'normal',
|
|
'product_qty': 2})]
|
|
})
|
|
|
|
def test_bom_explode_normal(self):
|
|
products = self.bom._bom_explode(self.product, 1)[0]
|
|
self.assertEqual(len(products), 1)
|
|
self.assertEqual(products[0]['product_id'], self.raw_product.id)
|
|
self.assertEqual(products[0]['product_qty'], 2)
|
|
|
|
def test_bom_explode_phantom_error(self):
|
|
self.bom.bom_line_ids[0].type = 'phantom'
|
|
with self.assertRaises(UserError):
|
|
self.bom._bom_explode(self.product, 1)
|
|
|
|
def test_bom_explode_phantom(self):
|
|
self.bom.bom_line_ids[0].type = 'phantom'
|
|
raw_product_2 = self.product_model.create({'name': 'Raw product 2'})
|
|
self.env['mrp.bom'].create(
|
|
{
|
|
'name': self.raw_product.name,
|
|
'product_id': self.raw_product.id,
|
|
'product_tmpl_id': self.raw_product.product_tmpl_id.id,
|
|
'bom_line_ids': [
|
|
(0, 0, {'product_id': raw_product_2.id,
|
|
'type': 'normal',
|
|
'product_qty': 3})]
|
|
})
|
|
products = self.bom._bom_explode(self.product, 1)[0]
|
|
self.assertEqual(len(products), 1)
|
|
self.assertEqual(products[0]['product_id'], raw_product_2.id)
|
|
self.assertEqual(products[0]['product_qty'], 6)
|