-
Notifications
You must be signed in to change notification settings - Fork 21
/
common.py
74 lines (65 loc) · 2.55 KB
/
common.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# -*- coding: utf-8 -*-
# Copyright 2018 Akretion (http://www.akretion.com)
# Copyright 2018 ACSONE SA/NV
# Sébastien BEAU <sebastien.beau@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from uuid import uuid4
from random import randint
import mock
from odoo import api, models
from odoo.fields import first
from odoo.addons.component.tests.common import SavepointComponentCase
class TestSeBackend(models.Model):
_name = 'test.se.backend'
_inherit = 'se.backend.spec.abstract'
_description = 'Unit Test SE Backend'
def init(self):
self.env['se.backend'].register_spec_backend(self)
def _register_hook(self):
self.env['se.backend'].register_spec_backend(self)
class TestSeBackendCase(SavepointComponentCase):
"""
Tests With a fake Se Backend
"""
def _init_test_model(self, model_cls):
"""
Function to init/create a new Odoo Model during unit test.
Based on base_kanban_stage/test/test_base_kanban_abstract.py
:param model_cls: Odoo Model class
:return: instance of model (empty)
"""
registry = self.env.registry
print 'enter'
registry.enter_test_mode()
cr = self.env.cr
model_cls._build_model(registry, cr)
model = self.env[model_cls._name].with_context(todo=[])
model._prepare_setup()
model._setup_base(partial=False)
model._setup_fields(partial=False)
model._setup_complete()
model._auto_init()
model.init()
model._auto_end()
return self.env[model_cls._name]
def setUp(self):
super(TestSeBackendCase, self).setUp()
# To load a new Model, we have to use a new cursor and env.
# Because there is a commit on the model._auto_init()
# Based on base_kanban_stage/test/test_base_kanban_abstract.py
# self.registry.enter_test_mode()
# self.old_cursor = self.cr
# self.cr = self.registry.cursor()
self.cr.commit = mock.MagicMock()
self.env = api.Environment(self.cr, self.uid, {})
self._init_test_model(TestSeBackend)
self.se_backend = self.env['test.se.backend'].create({
'specific_model': 'test.se.backend',
})
def tearDown(self):
print 'tear down'
self.registry.leave_test_mode()
#selection = (TestSeBackend._name, TestSeBackend._description)
#self.env['test.se.backend']._fields.get('specific_model').selection(
# test_model).remove(selection)
super(TestSeBackendCase, self).tearDown()