mirror of
https://github.com/bringout/oca-ocb-project.git
synced 2026-04-20 11:02:00 +02:00
19.0 vanilla
This commit is contained in:
parent
a2f74aefd8
commit
4a4d12c333
844 changed files with 212348 additions and 270090 deletions
|
|
@ -0,0 +1,96 @@
|
|||
from odoo.addons.project.tests.test_project_base import TestProjectCommon
|
||||
|
||||
|
||||
class TestTaskTemplates(TestProjectCommon):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.project_with_templates = cls.env["project.project"].create({
|
||||
"name": "Project with Task Template",
|
||||
})
|
||||
cls.template_task = cls.env["project.task"].create({
|
||||
"name": "Template",
|
||||
"project_id": cls.project_with_templates.id,
|
||||
"is_template": True,
|
||||
"description": "Template description",
|
||||
"partner_id": cls.partner_1.id,
|
||||
})
|
||||
cls.child_task = cls.env["project.task"].create({
|
||||
"name": "Child Task",
|
||||
"parent_id": cls.template_task.id,
|
||||
"description": "Child description",
|
||||
"partner_id": cls.partner_2.id,
|
||||
})
|
||||
|
||||
def test_create_from_template(self):
|
||||
"""
|
||||
Creating a task through the action should result in a non template copy, with no partner_id
|
||||
"""
|
||||
task_id = self.template_task.action_create_from_template()
|
||||
task = self.env["project.task"].browse(task_id)
|
||||
self.assertFalse(task.is_template, "The created task should be a normal task and not a template.")
|
||||
self.assertFalse(task.partner_id, "The created task should not have a partner.")
|
||||
|
||||
self.assertEqual(len(task.child_ids), 1, "The child of the template should be copied too.")
|
||||
child_task = task.child_ids
|
||||
self.assertFalse(child_task.is_template, "The child task should still not be a template.")
|
||||
self.assertFalse(child_task.partner_id, "The child task should also not have a partner.")
|
||||
|
||||
# With a partner set on the project, new tasks should get the partner too, even if created from a template
|
||||
self.project_with_templates.partner_id = self.partner_3
|
||||
|
||||
task_id = self.template_task.action_create_from_template()
|
||||
task = self.env["project.task"].browse(task_id)
|
||||
self.assertEqual(task.partner_id, self.partner_3, "The created task should have the same partner as the project.")
|
||||
child_task = task.child_ids
|
||||
self.assertEqual(child_task.partner_id, self.partner_3, "The child of the created task should have the same partner as the project.")
|
||||
|
||||
def test_copy_template(self):
|
||||
"""
|
||||
A copy of a template should be a template
|
||||
"""
|
||||
copied_template = self.template_task.copy()
|
||||
self.assertTrue(copied_template.is_template, "The copy of the template should also be a template.")
|
||||
self.assertEqual(len(copied_template.child_ids), 1, "The child of the template should be copied too.")
|
||||
copied_template_child_task = copied_template.child_ids
|
||||
self.assertFalse(copied_template_child_task.is_template, "The child of the copy should still not be a template.")
|
||||
|
||||
def test_copy_project_with_templates(self):
|
||||
"""
|
||||
Copying a project should also copy its task templates
|
||||
"""
|
||||
copied_project = self.project_with_templates.copy()
|
||||
task = self.env["project.task"].search([("project_id", "=", copied_project.id)], order="id asc", limit=1)
|
||||
self.assertTrue(task, "The copied project should contain a copy of the template.")
|
||||
self.assertTrue(task.is_template, "The copied template should still be a template.")
|
||||
|
||||
def test_has_template_ancestor(self):
|
||||
self.assertTrue(self.template_task.has_template_ancestor, "The template is a template.")
|
||||
self.assertTrue(self.child_task.has_template_ancestor, "The child of the template has a template ancestor.")
|
||||
|
||||
task = self.env["project.task"].create({
|
||||
"name": "Task",
|
||||
"project_id": self.project_with_templates.id,
|
||||
})
|
||||
self.assertFalse(task.has_template_ancestor, "The task does not have ancestors and is not a template.")
|
||||
|
||||
child = self.env["project.task"].create({
|
||||
"name": "Child",
|
||||
"parent_id": task.id,
|
||||
})
|
||||
self.assertFalse(child.has_template_ancestor, "The task has ancestors, but none of them are templates.")
|
||||
|
||||
self.assertCountEqual(
|
||||
self.env["project.task"].search(
|
||||
[('project_id', '=', self.project_with_templates.id), ('has_template_ancestor', '=', True)],
|
||||
),
|
||||
self.template_task | self.child_task,
|
||||
"The search should find the template and its child",
|
||||
)
|
||||
self.assertCountEqual(
|
||||
self.env["project.task"].search(
|
||||
[('project_id', '=', self.project_with_templates.id), ('has_template_ancestor', '=', False)],
|
||||
),
|
||||
task | child,
|
||||
"The search should find the non template task and its child",
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue