mirror of
https://github.com/bringout/oca-workflow-process.git
synced 2026-04-18 21:32:07 +02:00
Initial commit: OCA Workflow Process packages (456 packages)
This commit is contained in:
commit
d366e42934
18799 changed files with 1284507 additions and 0 deletions
|
|
@ -0,0 +1,5 @@
|
|||
# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html).
|
||||
|
||||
from . import test_project
|
||||
from . import test_task
|
||||
from . import test_controller
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
# Copyright 2017 - 2018 Modoolar <info@modoolar.com>
|
||||
# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html).
|
||||
|
||||
from odoo.tests.common import HttpCase, TransactionCase
|
||||
|
||||
|
||||
class TestMixin(object):
|
||||
@staticmethod
|
||||
def _setup_records(class_or_instance):
|
||||
self = class_or_instance
|
||||
self.Project = self.env["project.project"].with_context(test_project_key=True)
|
||||
self.Task = self.env["project.task"].with_context(test_project_key=True)
|
||||
|
||||
self.project_action = self.env.ref("project.open_view_project_all_config")
|
||||
self.task_action = self.env.ref("project.action_view_task")
|
||||
|
||||
self.project_1 = self.Project.create({"name": "OCA"})
|
||||
self.project_2 = self.Project.create({"name": "Odoo", "key": "ODOO"})
|
||||
self.project_3 = self.Project.create({"name": "Python"})
|
||||
|
||||
self.task11 = self.Task.create({"name": "1", "project_id": self.project_1.id})
|
||||
|
||||
self.task12 = self.Task.create(
|
||||
{"name": "2", "parent_id": self.task11.id, "project_id": self.project_1.id}
|
||||
)
|
||||
|
||||
self.task21 = self.Task.create({"name": "3", "project_id": self.project_2.id})
|
||||
|
||||
self.task30 = self.Task.create({"name": "3"})
|
||||
|
||||
def get_record_url(self, record, model, action):
|
||||
return "/web#id={}&view_type=form&model={}&action={}".format(
|
||||
record.id, model, action
|
||||
)
|
||||
|
||||
def get_task_url(self, task):
|
||||
return self.get_record_url(task, task._name, self.task_action.id)
|
||||
|
||||
def get_project_url(self, project):
|
||||
return self.get_record_url(project, project._name, self.project_action.id)
|
||||
|
||||
|
||||
class TestCommon(TransactionCase, TestMixin):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
|
||||
cls._setup_records(cls)
|
||||
|
||||
|
||||
class HttpTestCommon(HttpCase, TestMixin):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.env = self.env(context=dict(self.env.context, tracking_disable=True))
|
||||
self._setup_records(self)
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
# Copyright 2017 - 2018 Modoolar <info@modoolar.com>
|
||||
# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html).
|
||||
|
||||
from .test_common import HttpTestCommon
|
||||
|
||||
|
||||
class TestController(HttpTestCommon):
|
||||
def test_01_project_browse(self):
|
||||
self.authenticate("admin", "admin")
|
||||
response = self.url_open("/projects/" + self.project_1.key)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue(
|
||||
response.url.endswith(self.get_project_url(self.project_1)), response.url
|
||||
)
|
||||
|
||||
def test_02_task_browse(self):
|
||||
self.authenticate("admin", "admin")
|
||||
response = self.url_open("/tasks/" + self.task11.key)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue(
|
||||
response.url.endswith(self.get_task_url(self.task11)), response.url
|
||||
)
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
# Copyright 2017 - 2018 Modoolar <info@modoolar.com>
|
||||
# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html).
|
||||
|
||||
from odoo.tools import mute_logger
|
||||
|
||||
from .test_common import TestCommon
|
||||
|
||||
|
||||
class TestProject(TestCommon):
|
||||
def test_01_key(self):
|
||||
self.assertEqual(self.project_1.key, "OCA")
|
||||
self.assertEqual(self.project_2.key, "ODOO")
|
||||
self.assertEqual(self.project_3.key, "PYT")
|
||||
|
||||
def test_02_change_key(self):
|
||||
self.project_1.key = "XXX"
|
||||
|
||||
self.assertEqual(self.task11.key, "XXX-1")
|
||||
self.assertEqual(self.task12.key, "XXX-2")
|
||||
|
||||
def test_03_name_search(self):
|
||||
|
||||
projects = self.Project.name_search("ODO")
|
||||
self.assertEqual(len(projects), 1)
|
||||
|
||||
non_odoo_projects = [
|
||||
x[0] for x in self.Project.name_search("ODO", operator="not ilike")
|
||||
]
|
||||
|
||||
odoo_projects = self.Project.browse(non_odoo_projects).filtered(
|
||||
lambda x: x.id == self.project_2.id
|
||||
)
|
||||
|
||||
self.assertEqual(len(odoo_projects), 0)
|
||||
|
||||
def test_04_name_search_empty(self):
|
||||
projects = self.Project.name_search("")
|
||||
self.assertGreater(len(projects), 0)
|
||||
|
||||
def test_05_name_onchange(self):
|
||||
project = self.Project.new({"name": "Software Development"})
|
||||
project._onchange_project_name()
|
||||
self.assertEqual(project.key, "SD")
|
||||
|
||||
def test_06_name_onchange(self):
|
||||
project = self.Project.new({})
|
||||
project._onchange_project_name()
|
||||
self.assertEqual(project.key, "")
|
||||
|
||||
@mute_logger("odoo.models.unlink")
|
||||
def test_07_delete(self):
|
||||
self.project_1.task_ids.unlink()
|
||||
self.project_1.unlink()
|
||||
|
||||
self.project_2.task_ids.unlink()
|
||||
self.project_2.unlink()
|
||||
|
||||
self.project_3.unlink()
|
||||
|
||||
def test_08_generate_empty_project_key(self):
|
||||
empty_key = self.Project.generate_project_key(False)
|
||||
self.assertEqual(empty_key, "")
|
||||
|
||||
def test_09_name_onchange_with_key(self):
|
||||
project = self.Project.new({"name": "Software Development", "key": "TEST"})
|
||||
project._onchange_project_name()
|
||||
self.assertEqual(project.key, "TEST")
|
||||
|
||||
def test_10_generate_unique_key_with_counter(self):
|
||||
project = self.Project.create({"name": "OCA"})
|
||||
self.assertEqual(project.key, "OCA1")
|
||||
|
||||
def test_11_generate_unique_key_with_counter_inactive(self):
|
||||
self.project_1.active = False
|
||||
project = self.Project.create({"name": "OCA"})
|
||||
self.assertEqual(project.key, "OCA1")
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
# Copyright 2017 - 2018 Modoolar <info@modoolar.com>
|
||||
# License LGPLv3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.en.html).
|
||||
|
||||
from .test_common import TestCommon
|
||||
|
||||
|
||||
class TestTask(TestCommon):
|
||||
def test_01_key(self):
|
||||
self.assertEqual(self.task11.key, "OCA-1")
|
||||
self.assertEqual(self.task12.key, "OCA-2")
|
||||
self.assertEqual(self.task21.key, "ODOO-1")
|
||||
self.assertEqual(self.task30.key, False)
|
||||
|
||||
def test_02_compute_task_url(self):
|
||||
task_url = self.get_task_url(self.task11)
|
||||
|
||||
self.task11._compute_task_url()
|
||||
self.assertEqual(self.task11.url, task_url)
|
||||
|
||||
def test_03_create_task_project_in_context(self):
|
||||
self.Task.with_context(
|
||||
active_model="project.project", active_id=self.project_1.id
|
||||
).create({"name": "4"})
|
||||
|
||||
def test_04_no_switch_project(self):
|
||||
self.task11.write({"project_id": self.project_1.id})
|
||||
self.assertEqual(self.task11.key, "OCA-1")
|
||||
self.assertEqual(self.task12.key, "OCA-2")
|
||||
|
||||
def test_05_switch_project(self):
|
||||
self.task11.write({"project_id": self.project_2.id})
|
||||
self.assertEqual(self.task11.key, "ODOO-2")
|
||||
self.assertEqual(self.task12.key, "ODOO-3")
|
||||
|
||||
def test_06_name_search(self):
|
||||
oca_tasks = self.Task.name_search("OCA")
|
||||
self.assertEqual(len(oca_tasks), 2)
|
||||
|
||||
non_oca_task_ids = [
|
||||
x[0] for x in self.Task.name_search("OCA", operator="not ilike")
|
||||
]
|
||||
|
||||
oca_tasks = self.Task.browse(non_oca_task_ids).filtered(
|
||||
lambda x: x.project_id.id == self.project_1.id
|
||||
)
|
||||
|
||||
self.assertEqual(len(oca_tasks), 0)
|
||||
|
||||
def test_07_name_search_empty(self):
|
||||
tasks = self.Task.name_search("")
|
||||
self.assertGreater(len(tasks), 0)
|
||||
|
||||
def test_08_create_new_company(self):
|
||||
self.env["res.company"].create({"name": "New company"})
|
||||
Loading…
Add table
Add a link
Reference in a new issue