Files
public/mklab_project_task_indicators/tests/test_hg_mixin.py

68 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 TestHgMixin(TransactionCase):
"""
Тестируем mixin через project.task (наследует hg.hg_mixin).
Требует установленного модуля mklab_project_task_indicators.
"""
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.project = cls.env['project.project'].create({'name': 'Тестовый проект'})
def test_node_created_on_task_create(self):
task = self.env['project.task'].create({
'name': 'Задача с узлом',
'project_id': self.project.id,
})
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_node_name_matches_task(self):
task = self.env['project.task'].create({
'name': 'Задача для проверки имени',
'project_id': self.project.id,
})
self.assertEqual(task.node_id.name, 'Задача для проверки имени')
def test_index_ids_computed(self):
task = self.env['project.task'].create({
'name': 'Задача с показателями',
'project_id': self.project.id,
})
index = self.env['hg.index'].create({
'name': 'Показатель задачи',
'node_id': task.node_id.id,
})
task._compute_indexes()
self.assertIn(index, task.index_ids)
def test_related_ids_computed(self):
task_a = self.env['project.task'].create({
'name': 'Задача А',
'project_id': self.project.id,
})
task_b = self.env['project.task'].create({
'name': 'Задача Б',
'project_id': self.project.id,
})
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)
def test_related_ids_empty_without_links(self):
task = self.env['project.task'].create({
'name': 'Изолированная задача',
'project_id': self.project.id,
})
task._compute_related()
self.assertFalse(task.related_ids)