Odoo18-Base/addons/mrp/tests/test_workcenter.py
2025-01-06 10:57:38 +07:00

57 lines
2.6 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import timedelta, datetime
from freezegun import freeze_time
from . import common
from odoo import Command
from odoo.tests import Form, tagged
@tagged('-at_install', 'post_install')
class TestWorkcenterOverview(common.TestMrpCommon):
@freeze_time('2020-03-13') # Friday
def test_workcenter_graph_data(self):
fake_bom = self.env['mrp.bom'].create({
'product_id': self.product_2.id,
'product_tmpl_id': self.product_2.product_tmpl_id.id,
'product_uom_id': self.uom_unit.id,
'product_qty': 1.0,
'consumption': 'flexible',
'operation_ids': [
Command.create({
'name': 'Make it look you are working',
'workcenter_id': self.workcenter_2.id,
'time_cycle_manual': 60, 'sequence': 1})
],
'type': 'normal',
})
lang = self.env['res.lang']._lang_get(self.env.user.lang)
lang.week_start = '3' # Wednesday
week_range, date_start, date_stop = self.workcenter_2._get_week_range_and_first_last_days()
self.assertEqual(next(iter(week_range)), date_start)
self.assertEqual(date_stop.strftime('%Y-%m-%d'), '2020-04-07')
self.assertEqual(list(week_range.items())[2][1], '18 - 24 Mar')
mo_form = Form(self.env['mrp.production'])
mo_form.product_id = self.product_2
mo_form.bom_id = fake_bom
mo_form.product_qty = 20
mo_form.save().action_confirm()
mo_form_2 = Form(self.env['mrp.production'])
mo_form_2.product_id = self.product_2
mo_form_2.bom_id = fake_bom
mo_form_2.product_qty = 60
mo_form_2.date_start = datetime.today() + timedelta(weeks=1)
mo_form_2.save().action_confirm()
wc_load_data = self.workcenter_2._get_workcenter_load_per_week(week_range, date_start, date_stop)
self.assertListEqual(list(wc_load_data[self.workcenter_2].values()), [20.0, 60.0])
self.assertListEqual(list(wc_load_data[self.workcenter_2].keys()), [datetime(2020, 3, 11), datetime(2020, 3, 18)])
load_graph_data = self.workcenter_2._prepare_graph_data(wc_load_data, week_range)
self.assertEqual(load_graph_data[self.workcenter_2.id][0]['is_sample_data'], False)
self.assertListEqual(load_graph_data[self.workcenter_2.id][0]['labels'], list(week_range.values()))
self.assertListEqual(load_graph_data[self.workcenter_2.id][0]['values'], [[0, 20.0, 40.0, 0, 0], 40.0, [0, 0, 20.0, 0, 0]])