mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 12:11:59 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
|||
from . import test_evaluation
|
||||
|
|
@ -0,0 +1,226 @@
|
|||
# Copyright 2023 CreuBlanca
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from freezegun import freeze_time
|
||||
|
||||
from odoo.tests.common import Form, TransactionCase
|
||||
|
||||
|
||||
class TestEvaluation(TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.result_failed = cls.env["mgmtsystem.evaluation.result"].create(
|
||||
{"name": "Failed", "passed": False}
|
||||
)
|
||||
cls.result_passed = cls.env["mgmtsystem.evaluation.result"].create(
|
||||
{
|
||||
"name": "Passed",
|
||||
"passed": True,
|
||||
}
|
||||
)
|
||||
cls.template = cls.env["mgmtsystem.evaluation.template"].create(
|
||||
{
|
||||
"model_id": cls.env.ref("base.model_res_partner").id,
|
||||
"name": "Template",
|
||||
"feedback": "Feedback",
|
||||
"note": "Note",
|
||||
"result_ids": [(6, 0, (cls.result_failed | cls.result_passed).ids)],
|
||||
}
|
||||
)
|
||||
cls.partner = cls.env["res.partner"].create({"name": "Demo partner"})
|
||||
cls.partner_manager = cls.env["res.partner"].create(
|
||||
{"name": "Demo manager partner"}
|
||||
)
|
||||
cls.partner_manager_2 = cls.env["res.partner"].create(
|
||||
{"name": "Demo manager 2 partner"}
|
||||
)
|
||||
cls.user = cls.env["res.users"].create(
|
||||
{
|
||||
"partner_id": cls.partner.id,
|
||||
"login": "test_user_login",
|
||||
"password": "test_user_login",
|
||||
}
|
||||
)
|
||||
cls.manager = cls.env["res.users"].create(
|
||||
{
|
||||
"partner_id": cls.partner_manager.id,
|
||||
"login": "test_nanager_login",
|
||||
"password": "test_nanager_login",
|
||||
}
|
||||
)
|
||||
cls.manager_2 = cls.env["res.users"].create(
|
||||
{
|
||||
"partner_id": cls.partner_manager_2.id,
|
||||
"login": "test_nanager_login_2",
|
||||
"password": "test_nanager_login_2",
|
||||
}
|
||||
)
|
||||
cls.group = cls.env["res.groups"].create(
|
||||
{
|
||||
"name": "Group",
|
||||
}
|
||||
)
|
||||
cls.activity_1 = cls.env["mail.activity.type"].create({"name": "Activity 1"})
|
||||
cls.activity_2 = cls.env["mail.activity.type"].create({"name": "Activity 2"})
|
||||
|
||||
def test_onchange(self):
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
self.assertFalse(f.feedback)
|
||||
f.template_id = self.template
|
||||
self.assertEqual(f.feedback, self.template.feedback)
|
||||
f.resource = self.partner
|
||||
|
||||
def test_user(self):
|
||||
self.assertEqual(0, self.partner.mgmtsystem_evaluation_count)
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
f.template_id = self.template
|
||||
f.resource = self.partner
|
||||
evaluation = f.save()
|
||||
evaluation.manager_ids = self.manager
|
||||
self.assertFalse(evaluation.user_id)
|
||||
self.assertFalse(
|
||||
self.env["mgmtsystem.evaluation"]
|
||||
.with_user(self.user.id)
|
||||
.search([("id", "=", evaluation.id)])
|
||||
)
|
||||
evaluation.draft2progress()
|
||||
self.assertEqual(evaluation.user_id, self.user)
|
||||
self.assertEqual(
|
||||
evaluation,
|
||||
self.env["mgmtsystem.evaluation"]
|
||||
.with_user(self.user.id)
|
||||
.search([("id", "=", evaluation.id)]),
|
||||
)
|
||||
self.assertTrue(evaluation.with_user(self.manager).is_manager)
|
||||
self.assertFalse(evaluation.with_user(self.manager).is_user)
|
||||
self.assertFalse(
|
||||
self.env["mgmtsystem.evaluation"]
|
||||
.with_user(self.manager_2.id)
|
||||
.search([("id", "=", evaluation.id)]),
|
||||
)
|
||||
self.assertFalse(evaluation.with_user(self.user).is_manager)
|
||||
self.assertTrue(evaluation.with_user(self.user).is_user)
|
||||
self.assertEqual(1, self.partner.mgmtsystem_evaluation_count)
|
||||
|
||||
def test_manager(self):
|
||||
self.assertEqual(0, self.partner.mgmtsystem_evaluation_count)
|
||||
self.group.users = self.manager_2
|
||||
self.template.group_id = self.group
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
f.template_id = self.template
|
||||
f.resource = self.partner
|
||||
evaluation = f.save()
|
||||
evaluation.manager_ids = self.manager
|
||||
self.assertFalse(evaluation.user_id)
|
||||
self.assertFalse(
|
||||
self.env["mgmtsystem.evaluation"]
|
||||
.with_user(self.user.id)
|
||||
.search([("id", "=", evaluation.id)])
|
||||
)
|
||||
evaluation.draft2progress()
|
||||
self.assertEqual(evaluation.user_id, self.user)
|
||||
self.assertEqual(
|
||||
evaluation,
|
||||
self.env["mgmtsystem.evaluation"]
|
||||
.with_user(self.user.id)
|
||||
.search([("id", "=", evaluation.id)]),
|
||||
)
|
||||
self.assertTrue(evaluation.with_user(self.manager).is_manager)
|
||||
self.assertFalse(evaluation.with_user(self.manager).is_user)
|
||||
self.assertTrue(evaluation.with_user(self.manager_2).is_manager)
|
||||
self.assertFalse(evaluation.with_user(self.manager_2).is_user)
|
||||
self.assertFalse(evaluation.with_user(self.user).is_manager)
|
||||
self.assertTrue(evaluation.with_user(self.user).is_user)
|
||||
self.assertEqual(1, self.partner.mgmtsystem_evaluation_count)
|
||||
|
||||
def test_no_repetition(self):
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
f.template_id = self.template
|
||||
f.resource = self.partner
|
||||
evaluation = f.save()
|
||||
evaluation.draft2progress()
|
||||
evaluation.result_id = self.result_failed
|
||||
evaluation.progress2done()
|
||||
self.assertFalse(evaluation.next_evaluation_date)
|
||||
|
||||
def test_repetition(self):
|
||||
self.template.write(
|
||||
{
|
||||
"recurrence_type": "monthly",
|
||||
"recurrence_period": 1,
|
||||
}
|
||||
)
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
f.template_id = self.template
|
||||
f.resource = self.partner
|
||||
evaluation = f.save()
|
||||
evaluation.draft2progress()
|
||||
evaluation.result_id = self.result_failed
|
||||
evaluation.progress2done()
|
||||
self.assertTrue(evaluation.next_evaluation_date)
|
||||
self.env["mgmtsystem.evaluation"]._cron_new_evaluation()
|
||||
self.assertFalse(
|
||||
self.env["mgmtsystem.evaluation"].search(
|
||||
[
|
||||
("template_id", "=", self.template.id),
|
||||
("id", "not in", evaluation.ids),
|
||||
]
|
||||
)
|
||||
)
|
||||
with freeze_time(evaluation.next_evaluation_date):
|
||||
self.env["mgmtsystem.evaluation"]._cron_new_evaluation()
|
||||
self.assertTrue(
|
||||
self.env["mgmtsystem.evaluation"].search(
|
||||
[
|
||||
("template_id", "=", self.template.id),
|
||||
("id", "not in", evaluation.ids),
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
def test_cancel_back_to_draft(self):
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
f.template_id = self.template
|
||||
f.resource = self.partner
|
||||
evaluation = f.save()
|
||||
evaluation.draft2progress()
|
||||
self.assertEqual("progress", evaluation.state)
|
||||
evaluation.cancel()
|
||||
self.assertEqual("cancel", evaluation.state)
|
||||
evaluation.back_to_draft()
|
||||
self.assertEqual("draft", evaluation.state)
|
||||
|
||||
def test_activities(self):
|
||||
self.template.write(
|
||||
{
|
||||
"user_activity_type_id": self.activity_1.id,
|
||||
"manager_activity_type_id": self.activity_2.id,
|
||||
}
|
||||
)
|
||||
with Form(self.env["mgmtsystem.evaluation"]) as f:
|
||||
f.template_id = self.template
|
||||
f.resource = self.partner
|
||||
evaluation = f.save()
|
||||
evaluation.manager_ids = self.manager | self.manager_2
|
||||
self.assertFalse(evaluation.activity_ids)
|
||||
evaluation.draft2progress()
|
||||
self.assertEqual(3, len(evaluation.activity_ids))
|
||||
self.assertTrue(
|
||||
evaluation.activity_ids.filtered(
|
||||
lambda r: r.user_id == self.user
|
||||
and r.activity_type_id == self.activity_1
|
||||
)
|
||||
)
|
||||
self.assertTrue(
|
||||
evaluation.activity_ids.filtered(
|
||||
lambda r: r.user_id == self.manager
|
||||
and r.activity_type_id == self.activity_2
|
||||
)
|
||||
)
|
||||
self.assertTrue(
|
||||
evaluation.activity_ids.filtered(
|
||||
lambda r: r.user_id == self.manager_2
|
||||
and r.activity_type_id == self.activity_2
|
||||
)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue