oca-technical/odoo-bringout-oca-pos-pos_meal_voucher/pos_meal_voucher/tests/test_module.py
2025-08-29 15:43:03 +02:00

52 lines
2 KiB
Python

# Copyright 2021 - Today Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo.tests.common import TransactionCase
class TestModule(TransactionCase):
def setUp(self):
super().setUp()
self.ProductProduct = self.env["product.product"]
self.ProductTemplate = self.env["product.template"]
self.food_category = self.env.ref("pos_meal_voucher.food_category")
self.main_category = self.env.ref("product.product_category_all")
self.uom_unit = self.env.ref("uom.product_uom_unit")
def test_product_product(self):
product = self.ProductProduct.create(
{
"name": "Product",
"uom_id": self.uom_unit.id,
"uom_po_id": self.uom_unit.id,
"categ_id": self.food_category.id,
}
)
self.assertEqual(product.meal_voucher_ok, True)
# Affect product to a non-food category and run onchange
product.categ_id = self.main_category.id
product.onchange_categ_id_pos_meal_voucher()
self.assertEqual(product.meal_voucher_ok, False)
def test_product_template(self):
template = self.ProductTemplate.create(
{
"name": "Product",
"uom_id": self.uom_unit.id,
"uom_po_id": self.uom_unit.id,
"categ_id": self.food_category.id,
}
)
self.assertEqual(template.meal_voucher_ok, True)
# Affect template to a non-food category and run onchange
template.categ_id = self.main_category.id
template.onchange_categ_id_pos_meal_voucher()
self.assertEqual(template.meal_voucher_ok, False)
# Set non-food category as a food category and propagate settings
# to all the child product
self.main_category.meal_voucher_ok = True
self.main_category.button_apply_meal_voucher_settings()
self.assertEqual(template.meal_voucher_ok, True)