Files
public/mklab_project_task_indicators/tests/test_project_task.py

69 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
from odoo.tests.common import TransactionCase
class TestProjectTaskIndicators(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.project = cls.env['project.project'].create({'name': 'Тестовый проект'})
def _create_task(self, name='Тестовая задача'):
return self.env['project.task'].create({
'name': name,
'project_id': self.project.id,
})
def test_task_inherits_mixin(self):
task = self._create_task()
self.assertTrue(hasattr(task, 'node_id'))
self.assertTrue(hasattr(task, 'index_ids'))
self.assertTrue(hasattr(task, 'related_ids'))
def test_node_auto_created(self):
task = self._create_task('Задача с автоузлом')
self.assertTrue(task.node_id)
self.assertEqual(task.node_id.res_model, 'project.task')
self.assertEqual(task.node_id.res_id, task.id)
def test_multiple_tasks_have_separate_nodes(self):
task_a = self._create_task('Задача 1')
task_b = self._create_task('Задача 2')
self.assertNotEqual(task_a.node_id, task_b.node_id)
def test_index_assigned_via_node(self):
task = self._create_task('Задача с показателем')
index = self.env['hg.index'].create({
'name': 'Показатель задачи',
'node_id': task.node_id.id,
})
task._compute_indexes()
self.assertIn(index, task.index_ids)
def test_no_indexes_without_node_assignment(self):
task = self._create_task('Задача без показателей')
task._compute_indexes()
other_node = self.env['hg.node'].create({
'name': 'Чужой узел',
'res_model': 'hg.node',
'res_id': 0,
})
index = self.env['hg.index'].create({
'name': 'Чужой показатель',
'node_id': other_node.id,
})
task._compute_indexes()
self.assertNotIn(index, task.index_ids)
def test_related_tasks_via_link(self):
task_a = self._create_task('Задача-источник')
task_b = self._create_task('Задача-приёмник')
self.env['hg.link'].create({
'name': 'Связь задач',
'source_id': task_a.node_id.id,
'target_ids': [(4, task_b.node_id.id)],
})
task_a._compute_related()
self.assertIn(task_b.node_id, task_a.related_ids)