You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.1 KiB
90 lines
3.1 KiB
# Copyright 2016-2017 LasLabs Inc.
|
|
# Copyright 2019 Eficent Business and IT Consulting Services S.L.
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
|
|
|
|
from odoo import api, models
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
class BaseKanbanAbstractTester(models.Model):
|
|
_name = 'base.kanban.abstract.tester'
|
|
_inherit = 'base.kanban.abstract'
|
|
|
|
|
|
class TestBaseKanbanAbstract(TransactionCase):
|
|
|
|
def _init_test_model(self, model_cls):
|
|
model_cls._build_model(self.registry, self.cr)
|
|
model = self.env[model_cls._name]
|
|
# setup_models():
|
|
model._prepare_setup()
|
|
model._setup_base()
|
|
model._setup_fields()
|
|
# init_models():
|
|
model._setup_complete()
|
|
model._auto_init()
|
|
model.init()
|
|
while self.registry._post_init_queue:
|
|
func = self.registry._post_init_queue.popleft()
|
|
func()
|
|
return model
|
|
|
|
def setUp(self):
|
|
super(TestBaseKanbanAbstract, self).setUp()
|
|
|
|
self.registry.enter_test_mode(self.cr)
|
|
self.old_cursor = self.cr
|
|
self.cr = self.registry.cursor()
|
|
self.env = api.Environment(self.cr, self.uid, {})
|
|
self.test_model = self._init_test_model(BaseKanbanAbstractTester)
|
|
|
|
test_model_record = self.env['ir.model'].search([
|
|
('name', '=', self.test_model._name),
|
|
], limit=1)
|
|
self.test_stage = self.env['base.kanban.stage'].create({
|
|
'name': 'Test Stage',
|
|
'res_model_id': test_model_record.id,
|
|
'sequence': 2,
|
|
})
|
|
self.test_stage_2 = self.env['base.kanban.stage'].create({
|
|
'name': 'Test Stage 2',
|
|
'res_model_id': test_model_record.id,
|
|
'sequence': 1,
|
|
})
|
|
|
|
def tearDown(self):
|
|
self.registry.leave_test_mode()
|
|
self.registry[self.test_model._name]._abstract = True
|
|
self.registry[self.test_model._name]._auto = False
|
|
self.cr = self.old_cursor
|
|
self.env = api.Environment(self.cr, self.uid, {})
|
|
|
|
super(TestBaseKanbanAbstract, self).tearDown()
|
|
|
|
def test_default_stage_id_no_stages(self):
|
|
"""It should return empty recordset when model has no stages"""
|
|
self.env['base.kanban.stage'].search([
|
|
('res_model_id.model', '=', self.test_model._name),
|
|
]).unlink()
|
|
result = self.test_model._default_stage_id()
|
|
|
|
self.assertEqual(result, self.env['base.kanban.stage'])
|
|
|
|
def test_default_stage_id_available_stages(self):
|
|
"""It should return lowest sequence stage when model has stages"""
|
|
result = self.test_model._default_stage_id()
|
|
|
|
self.assertEqual(result, self.test_stage_2)
|
|
|
|
def test_read_group_stage_ids(self):
|
|
"""It should return all corresponding stages in requested sort order"""
|
|
result = self.test_model._read_group_stage_ids(
|
|
self.env['base.kanban.stage'], None, 'id'
|
|
)
|
|
|
|
expected = self.env['base.kanban.stage'].search(
|
|
[('res_model_id.model', '=', self.test_model._name)],
|
|
order='id',
|
|
)
|
|
self.assertEqual(result[0], expected[0])
|
|
self.assertEqual(result[1], expected[1])
|