diff options
| author | Odoo's Mergebot <xmo+roboto@odoo.com> | 2019-11-07 08:37:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-07 08:37:12 +0100 |
| commit | cfc65bd1b72b6fb7833f67fa580fa9fdac28b1f5 (patch) | |
| tree | c1aa353aa7e29d0ed918911dbdce456ed957b72e /addons/gamification | |
| parent | a3f5afdd53f5f0d8d76427fe14dce6f02e064a75 (diff) | |
| parent | bc8fe668495a1d080ff883d5e61e961a128669de (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/gamification')
| -rw-r--r-- | addons/gamification/tests/test_challenge.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/addons/gamification/tests/test_challenge.py b/addons/gamification/tests/test_challenge.py index e2824d59d17..d5875278694 100644 --- a/addons/gamification/tests/test_challenge.py +++ b/addons/gamification/tests/test_challenge.py @@ -1,17 +1,19 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.addons.base.tests.common import TransactionCaseWithUserDemo from odoo.exceptions import UserError -from odoo.tests import common -class TestGamificationCommon(common.TransactionCase): +class TestGamificationCommon(TransactionCaseWithUserDemo): def setUp(self): super(TestGamificationCommon, self).setUp() employees_group = self.env.ref('base.group_user') self.user_ids = employees_group.users + # Push demo user into the challenge before creating a new one + self.env.ref('gamification.challenge_base_discover')._update_all() self.robot = self.env['res.users'].with_context(no_reset_password=True).create({ 'name': 'R2D2', 'login': 'r2d2@openerp.com', @@ -25,7 +27,6 @@ class test_challenge(TestGamificationCommon): def test_00_join_challenge(self): challenge = self.env.ref('gamification.challenge_base_discover') - self.assertGreaterEqual(len(challenge.user_ids), len(self.user_ids), "Not enough users in base challenge") challenge._update_all() self.assertGreaterEqual(len(challenge.user_ids), len(self.user_ids)+1, "These are not droids you are looking for") @@ -40,7 +41,7 @@ class test_challenge(TestGamificationCommon): goal_ids = Goals.search([('challenge_id', '=', challenge.id), ('state', '!=', 'draft')]) self.assertEqual(len(goal_ids), len(challenge.line_ids) * len(challenge.user_ids.ids), "Incorrect number of goals generated, should be 1 goal per user, per challenge line") - demo = self.env.ref('base.user_demo') + demo = self.user_demo # demo user will set a timezone demo.tz = "Europe/Brussels" goal_ids = Goals.search([('user_id', '=', demo.id), ('definition_id', '=', self.env.ref('gamification.definition_base_timezone').id)]) |
