57 lines
2.6 KiB
Python
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]])
|