mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
135 lines
4.9 KiB
Python
135 lines
4.9 KiB
Python
from odoo.tests import Form, TransactionCase
|
|
|
|
|
|
class TestMrpBomAttributeMatchBase(TransactionCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls._create_products(cls)
|
|
cls._create_boms(cls)
|
|
|
|
def _create_products(self):
|
|
self.warehouse = self.env.ref("stock.warehouse0")
|
|
route_manufacture = self.warehouse.manufacture_pull_id.route_id.id
|
|
self.product_sword = self.env["product.template"].create(
|
|
{
|
|
"name": "Plastic Sword",
|
|
"type": "product",
|
|
}
|
|
)
|
|
self.product_surf = self.env["product.template"].create(
|
|
{
|
|
"name": "Surf",
|
|
"type": "product",
|
|
}
|
|
)
|
|
self.product_fin = self.env["product.template"].create(
|
|
{
|
|
"name": "Surf Fin",
|
|
"type": "product",
|
|
}
|
|
)
|
|
self.product_plastic = self.env["product.template"].create(
|
|
{
|
|
"name": "Plastic Component",
|
|
"type": "product",
|
|
}
|
|
)
|
|
self.p1 = self.env["product.template"].create(
|
|
{
|
|
"name": "P1",
|
|
"type": "product",
|
|
"route_ids": [(6, 0, [route_manufacture])],
|
|
}
|
|
)
|
|
self.p2 = self.env["product.template"].create(
|
|
{
|
|
"name": "P2",
|
|
"type": "product",
|
|
"route_ids": [(6, 0, [route_manufacture])],
|
|
}
|
|
)
|
|
self.p3 = self.env["product.template"].create(
|
|
{
|
|
"name": "P3",
|
|
"type": "product",
|
|
"route_ids": [(6, 0, [route_manufacture])],
|
|
}
|
|
)
|
|
self.product_9 = self.env["product.product"].create(
|
|
{
|
|
"name": "Paper",
|
|
}
|
|
)
|
|
self.product_10 = self.env["product.product"].create(
|
|
{
|
|
"name": "Stone",
|
|
}
|
|
)
|
|
self.product_attribute = self.env["product.attribute"].create(
|
|
{"name": "Colour", "display_type": "radio", "create_variant": "always"}
|
|
)
|
|
self.attribute_value_ids = self.env["product.attribute.value"].create(
|
|
[
|
|
{"name": "Cyan", "attribute_id": self.product_attribute.id},
|
|
{"name": "Magenta", "attribute_id": self.product_attribute.id},
|
|
]
|
|
)
|
|
self.plastic_attrs = self.env["product.template.attribute.line"].create(
|
|
{
|
|
"attribute_id": self.product_attribute.id,
|
|
"product_tmpl_id": self.product_plastic.id,
|
|
"value_ids": [(6, 0, self.product_attribute.value_ids.ids)],
|
|
}
|
|
)
|
|
self.sword_attrs = self.env["product.template.attribute.line"].create(
|
|
{
|
|
"attribute_id": self.product_attribute.id,
|
|
"product_tmpl_id": self.product_sword.id,
|
|
"value_ids": [(6, 0, self.product_attribute.value_ids.ids)],
|
|
}
|
|
)
|
|
|
|
def _create_boms(self):
|
|
mrp_bom_form = Form(self.env["mrp.bom"])
|
|
mrp_bom_form.product_tmpl_id = self.product_sword
|
|
with mrp_bom_form.bom_line_ids.new() as line_form:
|
|
line_form.component_template_id = self.product_plastic
|
|
line_form.product_qty = 1
|
|
self.bom_id = mrp_bom_form.save()
|
|
|
|
mrp_bom_form = Form(self.env["mrp.bom"])
|
|
mrp_bom_form.product_tmpl_id = self.product_fin
|
|
with mrp_bom_form.bom_line_ids.new() as line_form:
|
|
line_form.product_id = self.product_plastic.product_variant_ids[0]
|
|
line_form.product_qty = 1
|
|
self.fin_bom_id = mrp_bom_form.save()
|
|
|
|
mrp_bom_form = Form(self.env["mrp.bom"])
|
|
mrp_bom_form.product_tmpl_id = self.product_surf
|
|
with mrp_bom_form.bom_line_ids.new() as line_form:
|
|
line_form.product_id = self.product_fin.product_variant_ids[0]
|
|
line_form.product_qty = 1
|
|
self.surf_bom_id = mrp_bom_form.save()
|
|
|
|
mrp_bom_form = Form(self.env["mrp.bom"])
|
|
mrp_bom_form.product_tmpl_id = self.p1
|
|
with mrp_bom_form.bom_line_ids.new() as line_form:
|
|
line_form.product_id = self.p2.product_variant_ids[0]
|
|
line_form.product_qty = 1
|
|
self.p1_bom_id = mrp_bom_form.save()
|
|
|
|
mrp_bom_form = Form(self.env["mrp.bom"])
|
|
mrp_bom_form.product_tmpl_id = self.p2
|
|
with mrp_bom_form.bom_line_ids.new() as line_form:
|
|
line_form.product_id = self.p3.product_variant_ids[0]
|
|
line_form.product_qty = 1
|
|
self.p2_bom_id = mrp_bom_form.save()
|
|
|
|
mrp_bom_form = Form(self.env["mrp.bom"])
|
|
mrp_bom_form.product_tmpl_id = self.p3
|
|
with mrp_bom_form.bom_line_ids.new() as line_form:
|
|
line_form.product_id = self.p1.product_variant_ids[0]
|
|
line_form.product_qty = 1
|
|
self.p3_bom_id = mrp_bom_form.save()
|