summaryrefslogtreecommitdiff
path: root/addons/test_mail/tests/test_performance.py
diff options
context:
space:
mode:
authorOdoo's Mergebot <xmo+roboto@odoo.com>2019-11-07 08:37:12 +0100
committerGitHub <noreply@github.com>2019-11-07 08:37:12 +0100
commitcfc65bd1b72b6fb7833f67fa580fa9fdac28b1f5 (patch)
treec1aa353aa7e29d0ed918911dbdce456ed957b72e /addons/test_mail/tests/test_performance.py
parenta3f5afdd53f5f0d8d76427fe14dce6f02e064a75 (diff)
parentbc8fe668495a1d080ff883d5e61e961a128669de (diff)
[MERGE] various: Make the test suite demo data independant
Purpose ======= This is the first huge step to improve the test suite in several ways: - Make them demo data independent, allowing to modify the demo data without having to adapt the tests depending on it. It also allows to have a beautiful + convenient demo dataset to make a demonstration, and to configure complex data in the tests to manage the corner cases. - Improve the test performances by converting them into SavepointCase. Each test will be rollbacked to it's initial state, after the setUpClass call. That way the different data are not re-created at each test for nothing. - Introduce several test classes in base/tests/common.py to launch a TransactionCase, HttpCase or SavepointCase test with an available demo user, portal user or a large set of partners. - This is the first step to tend to a rolling release process, allowing to execute the tests (or a subset of the tests) on a migrated base, for example. closes odoo/odoo#39868 Taskid: 2075739 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/test_mail/tests/test_performance.py')
-rw-r--r--addons/test_mail/tests/test_performance.py48
1 files changed, 46 insertions, 2 deletions
diff --git a/addons/test_mail/tests/test_performance.py b/addons/test_mail/tests/test_performance.py
index 33a3bccb149..c26fe1a81f4 100644
--- a/addons/test_mail/tests/test_performance.py
+++ b/addons/test_mail/tests/test_performance.py
@@ -2,13 +2,14 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import base64
+from odoo.addons.base.tests.common import TransactionCaseWithUserDemo
from odoo.tests.common import TransactionCase, users, warmup
from odoo.tests import tagged
from odoo.tools import mute_logger, formataddr
@tagged('mail_performance')
-class BaseMailPerformance(TransactionCase):
+class BaseMailPerformance(TransactionCaseWithUserDemo):
def setUp(self):
super(BaseMailPerformance, self).setUp()
@@ -34,6 +35,49 @@ class BaseMailPerformance(TransactionCase):
@tagged('mail_performance')
class TestMailPerformance(BaseMailPerformance):
+ def setUp(self):
+ super(TestMailPerformance, self).setUp()
+
+ self.res_partner_3 = self.env['res.partner'].create({
+ 'name': 'Gemini Furniture',
+ 'email': 'gemini.furniture39@example.com',
+ })
+ self.res_partner_4 = self.env['res.partner'].create({
+ 'name': 'Ready Mat',
+ 'email': 'ready.mat28@example.com',
+ })
+ self.res_partner_10 = self.env['res.partner'].create({
+ 'name': 'The Jackson Group',
+ 'email': 'jackson.group82@example.com',
+ })
+ self.res_partner_12 = self.env['res.partner'].create({
+ 'name': 'Azure Interior',
+ 'email': 'azure.Interior24@example.com',
+ })
+ self.env['test_performance.mail'].create([
+ {
+ 'name': 'Object 0',
+ 'value': 0,
+ 'partner_id': self.res_partner_3.id,
+ }, {
+ 'name': 'Object 1',
+ 'value': 10,
+ 'partner_id': self.res_partner_3.id,
+ }, {
+ 'name': 'Object 2',
+ 'value': 20,
+ 'partner_id': self.res_partner_4.id,
+ }, {
+ 'name': 'Object 3',
+ 'value': 30,
+ 'partner_id': self.res_partner_10.id,
+ }, {
+ 'name': 'Object 4',
+ 'value': 40,
+ 'partner_id': self.res_partner_12.id,
+ }
+ ])
+
@users('__system__', 'demo')
@warmup
def test_read_mail(self):
@@ -84,7 +128,7 @@ class TestMailPerformance(BaseMailPerformance):
'name': 'Test',
'track': 'Y',
'value': 40,
- 'partner_id': self.env.ref('base.res_partner_12').id,
+ 'partner_id': self.res_partner_12.id,
})
with self.assertQueryCount(__system__=3, demo=3):