mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
202 lines
7.6 KiB
Python
202 lines
7.6 KiB
Python
from odoo.tests.common import TransactionCase
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class TestQualityControl(TransactionCase):
|
|
|
|
def setUp(self):
|
|
"""
|
|
Sets some enviroment
|
|
"""
|
|
super(TestQualityControl, self).setUp()
|
|
|
|
self.plan_model = self.env['qc.plan']
|
|
self.level_model = self.env['qc.level']
|
|
self.inspection_model = self.env['qc.inspection']
|
|
self.category_model = self.env['product.category']
|
|
self.Trigger_product_model = self.env['qc.trigger.product_template_line']
|
|
self.Trigger_category_model = self.env['qc.trigger.product_category_line']
|
|
self.Trigger_partner_model = self.env['qc.trigger.partner_line']
|
|
self.Partner_model = self.env['res.partner']
|
|
|
|
self.qc_trigger = self.env['qc.trigger'].create({
|
|
'name': 'Test Trigger',
|
|
'active': True,
|
|
})
|
|
self.test = self.env.ref('quality_control.qc_test_1')
|
|
self.product = self.env.ref('product.product_product_10')
|
|
self.product1 = self.env.ref('product.product_product_11')
|
|
self.product2 = self.env.ref('product.product_product_12')
|
|
self.product3 = self.env.ref('product.product_product_13')
|
|
self.category = self.category_model.create({'name': 'Plan test Category'})
|
|
self.product1.categ_id = self.category.id
|
|
|
|
def test_plan(self):
|
|
"""
|
|
Test Plan
|
|
"""
|
|
# creating plan
|
|
plan1 = self.plan_model.create({'name': 'Test', 'free_pass': False})
|
|
self.assertEqual(plan1.id > 0, True)
|
|
self.assertEqual(plan1.name == 'Test', True)
|
|
self.assertEqual(plan1.free_pass is False, True)
|
|
# assigning a level to the plan
|
|
level = self.level_model.create({'plan_id': plan1.id,
|
|
'qty_received': 10,
|
|
'qty_checked': 3,
|
|
'chk_type': 'percent'})
|
|
self.assertEqual(level.plan_id.id == plan1.id, True)
|
|
|
|
# adding second free pass plan
|
|
plan2 = self.plan_model.create({'name': 'Test2', 'free_pass': True})
|
|
if plan2:
|
|
plan3 = self.plan_model.create({'name': 'Test3', 'free_pass': True})
|
|
self.assertEqual(plan3, False)
|
|
|
|
# setting another plan as free pass
|
|
plan3 = self.plan_model.create({'name': 'Test3', 'free_pass': False})
|
|
plan3.free_pass = True
|
|
with self.assertRaises(ValidationError) as ve:
|
|
plan3.on_change_free_pass()
|
|
self.assertIn('A free pass plan already exists', str(ve.exception))
|
|
|
|
# create a the plan
|
|
plan2.free_pass = False
|
|
self.level_model.create({'plan_id': plan2.id,
|
|
'qty_received': 10,
|
|
'qty_checked': 7,
|
|
'chk_type': 'absolute'})
|
|
|
|
partner = self.Partner_model.create({'name': 'Plan test Partner'})
|
|
|
|
# creating quality triggers
|
|
trigger_product = self.Trigger_product_model.create({
|
|
'product_template': self.product.product_tmpl_id.id,
|
|
'trigger': self.qc_trigger.id,
|
|
'test': self.test.id,
|
|
'plan_id': plan1.id})
|
|
|
|
trigger_product_partner = self.Trigger_product_model.create({
|
|
'product_template': self.product.product_tmpl_id.id,
|
|
'trigger': self.qc_trigger.id,
|
|
'test': self.test.id,
|
|
'plan_id': plan2.id})
|
|
trigger_product_partner.partners = partner
|
|
|
|
trigger_category = self.Trigger_category_model.create({
|
|
'product_category': self.category.id,
|
|
'trigger': self.qc_trigger.id,
|
|
'test': self.test.id,
|
|
'plan_id': plan1.id})
|
|
|
|
trigger_category_partner = self.Trigger_category_model.create({
|
|
'product_category': self.category.id,
|
|
'trigger': self.qc_trigger.id,
|
|
'test': self.test.id,
|
|
'plan_id': plan1.id})
|
|
trigger_category_partner.partners = partner
|
|
|
|
trigger_partner = self.Trigger_partner_model.create({
|
|
'trigger': self.qc_trigger.id,
|
|
'test': self.test.id,
|
|
'plan_id': plan1.id})
|
|
trigger_partner.partner = partner
|
|
|
|
self.assertEqual(trigger_product.id > 0, True)
|
|
self.assertEqual(trigger_product_partner.id > 0, True)
|
|
self.assertEqual(trigger_category.id > 0, True)
|
|
self.assertEqual(trigger_category_partner.id > 0, True)
|
|
self.assertEqual(trigger_partner.id > 0, True)
|
|
|
|
# creates inspection for product
|
|
# get a move and a picking
|
|
get_move = self.env['stock.move'].search([])[0]
|
|
get_picking = self.env['stock.picking'].search([])[0]
|
|
# tests picking inherit
|
|
picking_ck = get_picking.action_done()
|
|
self.assertEqual(picking_ck, True)
|
|
|
|
# creates inspection for free pass
|
|
# adapt move's attributes with used data
|
|
get_move.product_id = self.product.id
|
|
obj_id = 'stock.move,' + str(get_move.id)
|
|
plan1.free_pass = True
|
|
self.inspection2 = self.inspection_model.create({
|
|
'object_id': obj_id,
|
|
'state': 'ready',
|
|
'test': 1,
|
|
'user': 1,
|
|
'auto_generated': True,
|
|
'qty': 300.0
|
|
})
|
|
self.assertEqual(self.inspection2.qty_checked == 0, True)
|
|
|
|
# creates inspection for product
|
|
plan1.free_pass = False
|
|
self.inspection2 = self.inspection_model.create({
|
|
'object_id': obj_id,
|
|
'state': 'ready',
|
|
'test': 1,
|
|
'user': 1,
|
|
'auto_generated': True,
|
|
'qty': 300.0
|
|
})
|
|
self.assertEqual(self.inspection2.qty_checked == 9, True)
|
|
|
|
# creates inspection for product partner
|
|
get_move.picking_id = get_picking.id
|
|
get_picking.partner_id = partner
|
|
self.inspection2 = self.inspection_model.create({
|
|
'object_id': obj_id,
|
|
'state': 'ready',
|
|
'test': 1,
|
|
'user': 1,
|
|
'auto_generated': True,
|
|
'qty': 300.0
|
|
})
|
|
self.assertEqual(self.inspection2.qty_checked == 7, True)
|
|
|
|
# creates inspection for category
|
|
get_move.product_id = self.product1.id
|
|
get_move.picking_id = False
|
|
self.product.category = self.category.id
|
|
self.inspection2 = self.inspection_model.create({
|
|
'object_id': obj_id,
|
|
'state': 'ready',
|
|
'test': 1,
|
|
'user': 1,
|
|
'auto_generated': True,
|
|
'qty': 150.0
|
|
})
|
|
self.assertEqual(self.inspection2.qty_checked == 4, True)
|
|
|
|
# creates inspection for partner
|
|
# get a move from db
|
|
get_move.product_id = self.product2.id
|
|
get_move.picking_id = get_picking.id
|
|
get_picking.partner_id = partner
|
|
self.inspection2 = self.inspection_model.create({
|
|
'object_id': obj_id,
|
|
'state': 'ready',
|
|
'test': 1,
|
|
'user': 1,
|
|
'auto_generated': True,
|
|
'qty': 400.0
|
|
})
|
|
self.assertEqual(self.inspection2.qty_checked == 12, True)
|
|
|
|
# create inspection without plan
|
|
partner2 = self.Partner_model.create({'name': 'Plan test Partner2'})
|
|
get_move.product_id = self.product3.id
|
|
get_move.picking_id = get_picking.id
|
|
get_picking.partner_id = partner2
|
|
self.inspection2 = self.inspection_model.create({
|
|
'object_id': obj_id,
|
|
'state': 'ready',
|
|
'test': 1,
|
|
'user': 1,
|
|
'auto_generated': True,
|
|
'qty': 400.0
|
|
})
|
|
self.assertEqual(self.inspection2.qty_checked == 1, True)
|