mirror of
https://github.com/bringout/oca-workflow-process.git
synced 2026-04-18 13:31:59 +02:00
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
# Copyright 2018 Onestein
|
|
# Copyright 2024 Tecnativa - Pedro M. Baeza
|
|
# Copyright 2024 Tecnativa - Víctor Martínez
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import exceptions, fields
|
|
|
|
from odoo.addons.base.tests.common import BaseCommon
|
|
|
|
|
|
class TestProjectTimeline(BaseCommon):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.project = cls.env.ref("project.project_project_1")
|
|
cls.stage = cls.env.ref("project.project_stage_2")
|
|
cls.task = cls.env["project.task"].create(
|
|
{"name": "test", "user_ids": False, "project_id": cls.project.id}
|
|
)
|
|
|
|
def test_01_flow_filling(self):
|
|
self.assertFalse(self.task.planned_date_start)
|
|
self.task.user_ids = self.env.user
|
|
self.assertTrue(self.task.planned_date_start)
|
|
self.assertFalse(self.task.planned_date_end)
|
|
self.task.write(
|
|
{
|
|
"stage_id": self.stage.id,
|
|
"date_end": fields.Datetime.add(self.task.planned_date_start, days=1),
|
|
}
|
|
)
|
|
self.assertTrue(self.task.planned_date_end)
|
|
|
|
def test_02_no_filling(self):
|
|
task = self.env["project.task"].create(
|
|
{
|
|
"name": "1",
|
|
"planned_date_start": "2018-05-01 00:00:00",
|
|
"planned_date_end": "2018-05-07 00:00:00",
|
|
"project_id": self.project.id,
|
|
}
|
|
)
|
|
task.user_ids = self.env.user
|
|
self.assertEqual(
|
|
task.planned_date_start, fields.Datetime.from_string("2018-05-01")
|
|
)
|
|
task.stage_id = self.stage
|
|
self.assertEqual(
|
|
task.planned_date_end, fields.Datetime.from_string("2018-05-07")
|
|
)
|
|
|
|
def test_misc_dates(self):
|
|
self.assertFalse(self.task.planned_date_start)
|
|
self.assertFalse(self.task.date_end)
|
|
|
|
def test_valid_dates(self):
|
|
self.task.planned_date_start = fields.Datetime.today()
|
|
self.task.date_end = fields.Datetime.add(self.task.planned_date_start, days=1)
|
|
self.assertGreater(self.task.date_end, self.task.planned_date_start)
|
|
|
|
def test_invalid_dates(self):
|
|
self.task.write({"user_ids": self.env.user.ids})
|
|
with self.assertRaises(exceptions.ValidationError):
|
|
self.task.planned_date_end = fields.Datetime.subtract(
|
|
self.task.planned_date_start, days=1
|
|
)
|