odex30_standard/hr_course/tests/test_hr_course.py

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")