Browse Source

[ADD] b_shift : attendance sheets test on creation

pull/125/head
Elouan Le Bars 5 years ago
parent
commit
89582a471c
  1. 80
      beesdoo_shift/tests/test_attendance_sheet.py

80
beesdoo_shift/tests/test_attendance_sheet.py

@ -4,6 +4,8 @@
from datetime import date, datetime, timedelta from datetime import date, datetime, timedelta
from openerp import fields
from openerp.tests.common import TransactionCase from openerp.tests.common import TransactionCase
@ -13,6 +15,8 @@ class TestAttendanceSheet(TransactionCase):
self.shift_model = self.env["beesdoo.shift.shift"] self.shift_model = self.env["beesdoo.shift.shift"]
self.shift_template_model = self.env["beesdoo.shift.template"] self.shift_template_model = self.env["beesdoo.shift.template"]
self.attendance_sheet_model = self.env["beesdoo.shift.sheet"] self.attendance_sheet_model = self.env["beesdoo.shift.sheet"]
self.shift_expected_model = self.env["beesdoo.shift.sheet.expected"]
self.shift_added_model = self.env["beesdoo.shift.sheet.added"]
self.current_time = datetime.now() self.current_time = datetime.now()
@ -54,10 +58,10 @@ class TestAttendanceSheet(TransactionCase):
) )
self.task_template_1 = self.env.ref( self.task_template_1 = self.env.ref(
"beesdoo.shift.beesdoo_shift_task_template_1_demo"
"beesdoo_shift.beesdoo_shift_task_template_1_demo"
) )
self.task_template_2 = self.env.ref( self.task_template_2 = self.env.ref(
"beesdoo.shift.beesdoo_shift_task_template_2_demo"
"beesdoo_shift.beesdoo_shift_task_template_2_demo"
) )
self.shift_regular_regular_1 = self.shift_model.create( self.shift_regular_regular_1 = self.shift_model.create(
@ -107,7 +111,7 @@ class TestAttendanceSheet(TransactionCase):
) )
self.shift_irregular_1 = self.shift_model.create( self.shift_irregular_1 = self.shift_model.create(
{ {
"task_template_id": self.task_template_1.id,
"task_template_id": self.task_template_2.id,
"task_type_id": self.task_type_2.id, "task_type_id": self.task_type_2.id,
"worker_id": self.worker_irregular_1.id, "worker_id": self.worker_irregular_1.id,
"start_time": self.current_time + timedelta(minutes=5), "start_time": self.current_time + timedelta(minutes=5),
@ -116,7 +120,7 @@ class TestAttendanceSheet(TransactionCase):
) )
self.shift_irregular_2 = self.shift_model.create( self.shift_irregular_2 = self.shift_model.create(
{ {
"task_template_id": self.task_template_2.id,
"task_template_id": self.task_template_1.id,
"task_type_id": self.task_type_3.id, "task_type_id": self.task_type_3.id,
"worker_id": self.worker_irregular_2.id, "worker_id": self.worker_irregular_2.id,
"start_time": self.current_time + timedelta(minutes=40), "start_time": self.current_time + timedelta(minutes=40),
@ -125,9 +129,75 @@ class TestAttendanceSheet(TransactionCase):
) )
self.shift_empty_1 = self.shift_model.create( self.shift_empty_1 = self.shift_model.create(
{ {
"task_template_id": self.task_template_1.id,
"task_template_id": self.task_template_2.id,
"task_type_id": self.task_type_1.id, "task_type_id": self.task_type_1.id,
"start_time": self.current_time + timedelta(minutes=5), "start_time": self.current_time + timedelta(minutes=5),
"end_time": self.current_time + timedelta(minutes=10), "end_time": self.current_time + timedelta(minutes=10),
} }
) )
def _search_sheets(self, start_time, end_time):
return self.attendance_sheet_model.search(
[("start_time", "=", start_time), ("end_time", "=", end_time)]
)
def test_attendance_sheet_creation(self):
"Test the creation of an attendance sheet with all its expected shifts"
start_in_1 = self.shift_regular_regular_1.start_time
end_in_1 = self.shift_regular_regular_1.end_time
start_in_2 = self.shift_regular_compensation_1.start_time
end_in_2 = self.shift_regular_compensation_1.end_time
start_out_1 = self.shift_regular_regular_2.start_time
end_out_1 = self.shift_regular_regular_2.end_time
start_out_2 = self.shift_irregular_2.start_time
end_out_2 = self.shift_irregular_2.end_time
# test attendance sheets creation
self.attendance_sheet_model._generate_attendance_sheet()
self.assertEquals(len(self._search_sheets(start_in_1, end_in_1)), 1)
self.assertEquals(len(self._search_sheets(start_in_2, end_in_2)), 1)
self.assertEquals(len(self._search_sheets(start_out_1, end_out_1)), 0)
self.assertEquals(len(self._search_sheets(start_out_2, end_out_2)), 0)
# test expected shifts creation
sheet_1 = self._search_sheets(start_in_1, end_in_1)
sheet_2 = self._search_sheets(start_in_2, end_in_2)
self.assertTrue(sheet_1.start_time)
self.assertTrue(sheet_1.end_time)
# empty shift should not be added
self.assertEquals(len(sheet_1.expected_shift_ids), 3)
self.assertEquals(len(sheet_1.added_shift_ids), 0)
self.assertEquals(len(sheet_2.expected_shift_ids), 1)
# test consistency with actual shift
for shift in sheet_1.expected_shift_ids:
self.assertEquals(shift.worker_id, shift.task_id.worker_id)
self.assertEquals(
shift.replacement_worker_id, shift.task_id.replaced_id
)
self.assertEquals(shift.task_type_id, shift.task_id.task_type_id)
self.assertEquals(shift.super_coop_id, shift.task_id.super_coop_id)
self.assertEquals(shift.working_mode, shift.task_id.working_mode)
if shift.working_mode == "regular":
self.assertEquals(shift.stage, "absent_2")
if shift.working_mode == "irregular":
self.assertEquals(shift.stage, "absent_1")
# test maximum number of workers calculation from task_templates
self.assertEquals(sheet_1.max_worker_no, 21)
# test default values creation
self.assertTrue(sheet_1.time_slot)
self.assertTrue(sheet_1.name)
day = fields.Datetime.from_string(sheet_1.start_time)
self.assertEquals(sheet_1.day, fields.Date.to_string(day))
self.assertFalse(sheet_1.annotation)
self.assertFalse(sheet_1.is_annotated)
# test default super-cooperator setting
self.assertTrue(self.shift_expected_model.default_task_type_id())
Loading…
Cancel
Save