78 lines
3.2 KiB
Python
78 lines
3.2 KiB
Python
# Copyright 2019 Creu Blanca
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
import odoo.tests.common as common
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class TestHrCourse(common.TransactionCase):
|
|
def setUp(self):
|
|
super(TestHrCourse, self).setUp()
|
|
self.course_categ = self.env["hr.course.category"].create(
|
|
{"name": "Category 1"}
|
|
)
|
|
self.employee1 = self.env["hr.employee"].create({"name": "Employee 1"})
|
|
self.employee2 = self.env["hr.employee"].create({"name": "Employee 2"})
|
|
self.course_id = self.env["hr.course"].create(
|
|
{
|
|
"name": "Course name",
|
|
"category_id": self.course_categ.id,
|
|
"permanence": True,
|
|
"permanence_time": "1 month",
|
|
}
|
|
)
|
|
self.course_schedule_id = self.env["hr.course.schedule"].create(
|
|
{
|
|
"name": "Convocatory",
|
|
"course_id": self.course_id.id,
|
|
"cost": 100,
|
|
"authorized_by": self.employee1.id,
|
|
"start_date": "2019-02-15",
|
|
"end_date": "2019-02-20",
|
|
}
|
|
)
|
|
|
|
def test_hr_course(self):
|
|
self.course_id.permanence = False
|
|
self.course_id._onchange_permanence()
|
|
self.assertFalse(self.course_id.permanence_time)
|
|
|
|
def test_hr_course_schedule(self):
|
|
with self.assertRaises(ValidationError):
|
|
self.course_schedule_id.write({"end_date": "2019-02-10"})
|
|
|
|
self.assertEqual(self.course_schedule_id.state, "draft")
|
|
self.course_schedule_id.cancel_course()
|
|
self.assertEqual(self.course_schedule_id.state, "cancelled")
|
|
self.course_schedule_id.back2draft()
|
|
|
|
self.course_schedule_id.draft2waiting()
|
|
self.assertEqual(self.course_schedule_id.state, "waiting_attendees")
|
|
self.course_schedule_id.attendant_ids = [
|
|
fields.Command.set([self.employee1.id, self.employee2.id])
|
|
]
|
|
self.assertTrue(self.course_schedule_id.attendant_ids)
|
|
self.assertEqual(len(self.course_schedule_id.attendant_ids), 2)
|
|
|
|
self.course_schedule_id.waiting2inprogress()
|
|
self.assertEqual(self.course_schedule_id.state, "in_progress")
|
|
self.assertEqual(len(self.course_schedule_id.course_attendee_ids), 2)
|
|
self.course_schedule_id.attendant_ids = [fields.Command.delete(self.employee2.id)]
|
|
self.course_schedule_id.waiting2inprogress()
|
|
self.assertEqual(len(self.course_schedule_id.attendant_ids), 1)
|
|
self.assertEqual(len(self.course_schedule_id.course_attendee_ids), 1)
|
|
self.employee1._compute_count_courses()
|
|
self.assertEqual(self.employee1.count_courses, 1)
|
|
self.employee1.action_view_course()
|
|
|
|
self.course_schedule_id.inprogress2validation()
|
|
self.assertEqual(self.course_schedule_id.state, "in_validation")
|
|
with self.assertRaises(ValidationError):
|
|
self.course_schedule_id.validation2complete()
|
|
self.course_schedule_id.all_passed()
|
|
self.assertEqual(
|
|
self.course_schedule_id.course_attendee_ids[0].result, "passed"
|
|
)
|
|
self.course_schedule_id.validation2complete()
|
|
self.assertEqual(self.course_schedule_id.state, "completed")
|