[IMP] quality_control: black, isort

This commit is contained in:
ps-tubtim
2020-03-16 17:32:22 +07:00
committed by Stefano Consolaro
parent a834796aa0
commit a6f788f2d5
25 changed files with 878 additions and 684 deletions

View File

@@ -5,204 +5,220 @@
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
from odoo import exceptions
from ..models.qc_trigger_line import\
_filter_trigger_lines
from odoo.tests.common import TransactionCase
from ..models.qc_trigger_line import _filter_trigger_lines
class TestQualityControl(TransactionCase):
def setUp(self):
super(TestQualityControl, self).setUp()
self.inspection_model = self.env['qc.inspection']
self.category_model = self.env['qc.test.category']
self.question_model = self.env['qc.test.question']
self.wizard_model = self.env['qc.inspection.set.test']
self.qc_trigger = self.env['qc.trigger'].create({
'name': 'Test Trigger',
'active': True,
})
self.test = self.env.ref('quality_control.qc_test_1')
self.val_ok = self.env.ref('quality_control.qc_test_question_value_1')
self.val_ko = self.env.ref('quality_control.qc_test_question_value_2')
self.qn_question = self.env.ref('quality_control.qc_test_question_2')
self.inspection_model = self.env["qc.inspection"]
self.category_model = self.env["qc.test.category"]
self.question_model = self.env["qc.test.question"]
self.wizard_model = self.env["qc.inspection.set.test"]
self.qc_trigger = self.env["qc.trigger"].create(
{"name": "Test Trigger", "active": True}
)
self.test = self.env.ref("quality_control.qc_test_1")
self.val_ok = self.env.ref("quality_control.qc_test_question_value_1")
self.val_ko = self.env.ref("quality_control.qc_test_question_value_2")
self.qn_question = self.env.ref("quality_control.qc_test_question_2")
self.cat_generic = self.env.ref(
'quality_control.qc_test_template_category_generic')
self.product = self.env.ref('product.product_product_11')
inspection_lines = (
self.inspection_model._prepare_inspection_lines(self.test))
self.inspection1 = self.inspection_model.create({
'name': 'Test Inspection',
'inspection_lines': inspection_lines,
})
"quality_control.qc_test_template_category_generic"
)
self.product = self.env.ref("product.product_product_11")
inspection_lines = self.inspection_model._prepare_inspection_lines(self.test)
self.inspection1 = self.inspection_model.create(
{"name": "Test Inspection", "inspection_lines": inspection_lines}
)
self.wizard = self.wizard_model.with_context(
active_id=self.inspection1.id).create({
'test': self.test.id,
})
active_id=self.inspection1.id
).create({"test": self.test.id})
self.wizard.action_create_test()
self.inspection1.action_todo()
def test_inspection_correct(self):
for line in self.inspection1.inspection_lines:
if line.question_type == 'qualitative':
if line.question_type == "qualitative":
line.qualitative_value = self.val_ok
if line.question_type == 'quantitative':
if line.question_type == "quantitative":
line.quantitative_value = 5.0
self.inspection1.action_confirm()
for line in self.inspection1.inspection_lines:
self.assertTrue(
line.success,
'Incorrect state in inspection line %s' % line.name)
line.success, "Incorrect state in inspection line %s" % line.name
)
self.assertTrue(
self.inspection1.success,
'Incorrect state in inspection %s' % self.inspection1.name)
self.assertEqual(self.inspection1.state, 'success')
"Incorrect state in inspection %s" % self.inspection1.name,
)
self.assertEqual(self.inspection1.state, "success")
self.inspection1.action_approve()
self.assertEqual(self.inspection1.state, 'success')
self.assertEqual(self.inspection1.state, "success")
def test_inspection_incorrect(self):
for line in self.inspection1.inspection_lines:
if line.question_type == 'qualitative':
if line.question_type == "qualitative":
line.qualitative_value = self.val_ko
if line.question_type == 'quantitative':
if line.question_type == "quantitative":
line.quantitative_value = 15.0
self.inspection1.action_confirm()
for line in self.inspection1.inspection_lines:
self.assertFalse(
line.success,
'Incorrect state in inspection line %s' % line.name)
line.success, "Incorrect state in inspection line %s" % line.name
)
self.assertFalse(
self.inspection1.success,
'Incorrect state in inspection %s' % self.inspection1.name)
self.assertEqual(self.inspection1.state, 'waiting')
"Incorrect state in inspection %s" % self.inspection1.name,
)
self.assertEqual(self.inspection1.state, "waiting")
self.inspection1.action_approve()
self.assertEqual(self.inspection1.state, 'failed')
self.assertEqual(self.inspection1.state, "failed")
def test_actions_errors(self):
inspection2 = self.inspection1.copy()
inspection2.action_draft()
inspection2.write({'test': False})
inspection2.write({"test": False})
with self.assertRaises(exceptions.UserError):
inspection2.action_todo()
inspection3 = self.inspection1.copy()
inspection3.write({
'inspection_lines':
self.inspection_model._prepare_inspection_lines(inspection3.test)
})
inspection3.write(
{
"inspection_lines": self.inspection_model._prepare_inspection_lines(
inspection3.test
)
}
)
for line in inspection3.inspection_lines:
if line.question_type == 'quantitative':
if line.question_type == "quantitative":
line.quantitative_value = 15.0
with self.assertRaises(exceptions.UserError):
inspection3.action_confirm()
inspection4 = self.inspection1.copy()
inspection4.write({
'inspection_lines':
self.inspection_model._prepare_inspection_lines(inspection4.test)
})
inspection4.write(
{
"inspection_lines": self.inspection_model._prepare_inspection_lines(
inspection4.test
)
}
)
for line in inspection4.inspection_lines:
if line.question_type == 'quantitative':
line.write({
'uom_id': False,
'quantitative_value': 15.0,
})
elif line.question_type == 'qualitative':
if line.question_type == "quantitative":
line.write({"uom_id": False, "quantitative_value": 15.0})
elif line.question_type == "qualitative":
line.qualitative_value = self.val_ok
with self.assertRaises(exceptions.UserError):
inspection4.action_confirm()
def test_categories(self):
category1 = self.category_model.create({
'name': 'Category ONE',
})
category2 = self.category_model.create({
'name': 'Category TWO',
'parent_id': category1.id,
})
category1 = self.category_model.create({"name": "Category ONE"})
category2 = self.category_model.create(
{"name": "Category TWO", "parent_id": category1.id}
)
self.assertEqual(
category2.complete_name,
'%s / %s' % (category1.name, category2.name),
'Something went wrong when computing complete name')
"{} / {}".format(category1.name, category2.name),
"Something went wrong when computing complete name",
)
with self.assertRaises(exceptions.ValidationError):
category1.parent_id = category2.id
def test_get_qc_trigger_product(self):
self.test.write({
'fill_correct_values': True,
})
self.test.write({"fill_correct_values": True})
trigger_lines = set()
self.product.write({
'qc_triggers': [(0, 0, {'trigger': self.qc_trigger.id,
'test': self.test.id})],
})
self.product.product_tmpl_id.write({
'qc_triggers': [(0, 0, {'trigger': self.qc_trigger.id,
'test': self.test.id})],
})
self.product.categ_id.write({
'qc_triggers': [(0, 0, {'trigger': self.qc_trigger.id,
'test': self.test.id})],
})
for model in ['qc.trigger.product_category_line',
'qc.trigger.product_template_line',
'qc.trigger.product_line']:
self.product.write(
{
"qc_triggers": [
(0, 0, {"trigger": self.qc_trigger.id, "test": self.test.id})
],
}
)
self.product.product_tmpl_id.write(
{
"qc_triggers": [
(0, 0, {"trigger": self.qc_trigger.id, "test": self.test.id})
],
}
)
self.product.categ_id.write(
{
"qc_triggers": [
(0, 0, {"trigger": self.qc_trigger.id, "test": self.test.id})
],
}
)
for model in [
"qc.trigger.product_category_line",
"qc.trigger.product_template_line",
"qc.trigger.product_line",
]:
trigger_lines = trigger_lines.union(
self.env[model].get_trigger_line_for_product(
self.qc_trigger, self.product))
self.qc_trigger, self.product
)
)
self.assertEqual(len(trigger_lines), 3)
filtered_trigger_lines = _filter_trigger_lines(trigger_lines)
self.assertEqual(len(filtered_trigger_lines), 1)
for trigger_line in filtered_trigger_lines:
inspection = self.inspection_model._make_inspection(
self.product, trigger_line)
self.assertEqual(inspection.state, 'ready')
self.product, trigger_line
)
self.assertEqual(inspection.state, "ready")
self.assertTrue(inspection.auto_generated)
self.assertEqual(inspection.test, self.test)
for line in inspection.inspection_lines:
if line.question_type == 'qualitative':
if line.question_type == "qualitative":
self.assertEqual(line.qualitative_value, self.val_ok)
elif line.question_type == 'quantitative':
elif line.question_type == "quantitative":
self.assertAlmostEqual(
round(line.quantitative_value, 2), round((
self.qn_question.min_value +
self.qn_question.max_value) * 0.5, 2))
round(line.quantitative_value, 2),
round(
(self.qn_question.min_value + self.qn_question.max_value)
* 0.5,
2,
),
)
def test_qc_inspection_not_draft_unlink(self):
with self.assertRaises(exceptions.UserError):
self.inspection1.unlink()
inspection2 = self.inspection1.copy()
inspection2.action_cancel()
self.assertEqual(inspection2.state, 'canceled')
self.assertEqual(inspection2.state, "canceled")
inspection2.action_draft()
self.assertEqual(inspection2.state, 'draft')
self.assertEqual(inspection2.state, "draft")
inspection2.unlink()
def test_qc_inspection_auto_generate_unlink(self):
inspection2 = self.inspection1.copy()
inspection2.write({
'auto_generated': True,
})
inspection2.write({"auto_generated": True})
with self.assertRaises(exceptions.UserError):
inspection2.unlink()
def test_qc_inspection_product(self):
self.inspection1.write({
'object_id': '%s,%d' % (self.product._name, self.product.id),
})
self.inspection1.write(
{"object_id": "%s,%d" % (self.product._name, self.product.id)}
)
self.assertEqual(self.inspection1.product_id, self.product)
def test_qc_test_question_constraints(self):
with self.assertRaises(exceptions.ValidationError):
self.question_model.create({
'name': 'Quantitative Question',
'type': 'quantitative',
'min_value': 1.0,
'max_value': 0.0,
})
self.question_model.create(
{
"name": "Quantitative Question",
"type": "quantitative",
"min_value": 1.0,
"max_value": 0.0,
}
)
with self.assertRaises(exceptions.ValidationError):
self.question_model.create({
'name': 'Qualitative Question',
'type': 'qualitative',
'ql_values': [(0, 0, {'name': 'Qualitative answer',
'ok': False})],
})
self.question_model.create(
{
"name": "Qualitative Question",
"type": "qualitative",
"ql_values": [(0, 0, {"name": "Qualitative answer", "ok": False})],
}
)