oca-technical/odoo-bringout-oca-ddmrp-ddmrp_adjustment/ddmrp_adjustment/tests/test_adjustment_wizard.py
2025-08-29 15:43:03 +02:00

48 lines
2 KiB
Python

# Copyright 2018 Camptocamp SA
# Copyright 2020 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from dateutil.relativedelta import relativedelta
from .test_common import TestDDMRPAdjustmentCommon
class TestAdjustmentWizard(TestDDMRPAdjustmentCommon):
def test_adjustment_generation(self):
wiz = self._create_adjustment_wizard(3)
self.assertEqual(len(wiz.line_ids), 0)
wiz.apply_daf = True
wiz.apply_ltaf = True
wiz._onchange_sheet()
self.assertEqual(len(wiz.line_ids), 6)
next_month = self.now + relativedelta(months=1)
following_month = self.now + relativedelta(months=2)
values = {
"DAF": {
getattr(self, "month_%i_%i" % (self.now.year, self.now.month)): 1.5,
getattr(self, "month_%i_%i" % (next_month.year, next_month.month)): 2,
getattr(
self, "month_%i_%i" % (following_month.year, following_month.month)
): 1.8,
},
"LTAF": {
getattr(self, "month_%i_%i" % (self.now.year, self.now.month)): 2,
getattr(self, "month_%i_%i" % (next_month.year, next_month.month)): 2.5,
getattr(
self, "month_%i_%i" % (following_month.year, following_month.month)
): 2,
},
}
for line in wiz.line_ids:
line.value = values.get(line.factor).get(line.date_range_id)
demand_adjustment_ids = wiz.button_validate().get("domain")[0][2]
self.assertEqual(len(demand_adjustment_ids), 6)
adjustments = self.env["ddmrp.adjustment"].browse(demand_adjustment_ids)
for adj in adjustments:
self.assertEqual(adj.buffer_id, self.buffer)
if adj.adjustment_type == "DAF":
self.assertEqual(adj.value, values.get("DAF").get(adj.date_range_id))
if adj.adjustment_type == "LTAF":
self.assertEqual(adj.value, values.get("LTAF").get(adj.date_range_id))