summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Monniez <moc@odoo.com>2019-10-25 11:27:35 +0000
committerChristophe Monniez <moc@odoo.com>2019-10-30 12:35:23 +0000
commit8d5da6e4be05428f3243f92c0464d3c1f6a43873 (patch)
treea0fdc729641ef638d1edfb3646c463eba28f3697 /addons
parentb6ed34e134f868d7ccdfcb436592e0cc343fa3b5 (diff)
[IMP] tests: log a warning when HttpCase test in at_install
When loading a page on an existing starting database, registry is not fully loaded causing potential error when trying to access model existing in database (views, menitem, ...) since model added in last loaded module does not exist in registry. Thus, executing browser js test may lead to errors when executed during an update on a database with other modules installed. HTTPCase should be executed post_install to ensure that registry is fully loaded to avoid this problem. Since HTTPCase are slower than other test, it is also a good idea to execute them at the end, in order to prioritize fast fail. With this commit, a warning is isued if such a test class is tagged to run at install time. While at it, remove deprecated at_install and post_install helpers and remove the deprecated phantom_js alias. closes odoo/odoo#39462 Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Diffstat (limited to 'addons')
-rw-r--r--addons/account/tests/test_templates_consistency.py4
-rw-r--r--addons/im_support/tests/test_js.py2
-rw-r--r--addons/survey/tests/test_certification_badge.py3
-rw-r--r--addons/survey/tests/test_certification_flow.py2
-rw-r--r--addons/survey/tests/test_survey_flow.py2
-rw-r--r--addons/test_mail/tests/test_mail_redirect.py3
-rw-r--r--addons/test_website_slides_full/tests/test_ui_wslides.py2
-rw-r--r--addons/test_xlsx_export/tests/test_export.py3
-rw-r--r--addons/web/tests/test_image.py3
-rw-r--r--addons/web/tests/test_js.py4
-rw-r--r--addons/website/tests/test_page.py1
-rw-r--r--addons/website/tests/test_ui.py2
-rw-r--r--addons/website/tests/test_views.py1
-rw-r--r--addons/website/tests/test_website_visitor.py3
-rw-r--r--addons/website_mail_channel/tests/test_unsubscribe.py3
-rw-r--r--addons/website_sale_wishlist/tests/test_wishlist_process.py3
-rw-r--r--addons/website_slides/tests/test_ui_wslides.py10
-rw-r--r--addons/website_theme_install/tests/test_views.py1
18 files changed, 29 insertions, 23 deletions
diff --git a/addons/account/tests/test_templates_consistency.py b/addons/account/tests/test_templates_consistency.py
index 1c0add5eb7e..aaa2217a515 100644
--- a/addons/account/tests/test_templates_consistency.py
+++ b/addons/account/tests/test_templates_consistency.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
-from odoo.tests.common import HttpCase
+from odoo.tests.common import TransactionCase
-class AccountingTestTemplConsistency(HttpCase):
+class AccountingTestTemplConsistency(TransactionCase):
'''Test the templates consistency between some objects like account.account when account.account.template.
'''
diff --git a/addons/im_support/tests/test_js.py b/addons/im_support/tests/test_js.py
index 0b52ea4a596..6f745b74a79 100644
--- a/addons/im_support/tests/test_js.py
+++ b/addons/im_support/tests/test_js.py
@@ -8,4 +8,4 @@ import odoo.tests
class IMSupportSuite(odoo.tests.HttpCase):
def test_im_support_js(self):
- self.phantom_js('/im_support/tests?mod=web&failfast', "", "", login='admin', timeout=180)
+ self.browser_js('/im_support/tests?mod=web&failfast', "", "", login='admin', timeout=180)
diff --git a/addons/survey/tests/test_certification_badge.py b/addons/survey/tests/test_certification_badge.py
index 6cb3bbbafc8..43125ad4a02 100644
--- a/addons/survey/tests/test_certification_badge.py
+++ b/addons/survey/tests/test_certification_badge.py
@@ -2,13 +2,12 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.survey.tests import common
-from odoo.tests.common import HttpCase
from psycopg2 import IntegrityError
from odoo.exceptions import AccessError
from odoo.tools import mute_logger
-class TestCertificationBadge(common.SurveyCase, HttpCase):
+class TestCertificationBadge(common.SurveyCase):
def setUp(self):
super(TestCertificationBadge, self).setUp()
self.certification_survey = self.env['survey.survey'].with_user(self.survey_manager).create({
diff --git a/addons/survey/tests/test_certification_flow.py b/addons/survey/tests/test_certification_flow.py
index 42e58af21b1..16b45bcd7c2 100644
--- a/addons/survey/tests/test_certification_flow.py
+++ b/addons/survey/tests/test_certification_flow.py
@@ -9,7 +9,7 @@ from odoo.tests import tagged
from odoo.tests.common import HttpCase
-@tagged('functional')
+@tagged('-at_install', 'post_install', 'functional')
class TestCertificationFlow(common.SurveyCase, HttpCase):
def _answer_question(self, question, answer, answer_token, csrf_token, button_submit='next'):
# Employee submits the question answer
diff --git a/addons/survey/tests/test_survey_flow.py b/addons/survey/tests/test_survey_flow.py
index a383a54430f..70d5f48663f 100644
--- a/addons/survey/tests/test_survey_flow.py
+++ b/addons/survey/tests/test_survey_flow.py
@@ -6,7 +6,7 @@ from odoo.tests import tagged
from odoo.tests.common import HttpCase
-@tagged('functional')
+@tagged('-at_install', 'post_install', 'functional')
class TestSurveyFlow(common.SurveyCase, HttpCase):
def _format_submission_data(self, page, answer_data, additional_post_data):
post_data = {}
diff --git a/addons/test_mail/tests/test_mail_redirect.py b/addons/test_mail/tests/test_mail_redirect.py
index 6149e2f429b..706a9704319 100644
--- a/addons/test_mail/tests/test_mail_redirect.py
+++ b/addons/test_mail/tests/test_mail_redirect.py
@@ -2,9 +2,10 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from werkzeug.urls import url_decode, url_parse
-from odoo.tests.common import HttpCase
+from odoo.tests.common import HttpCase, tagged
+@tagged('-at_install', 'post_install')
class TestMultiCompany(HttpCase):
def test_redirect_to_records(self):
diff --git a/addons/test_website_slides_full/tests/test_ui_wslides.py b/addons/test_website_slides_full/tests/test_ui_wslides.py
index e8c604dc812..5d8592b9eb2 100644
--- a/addons/test_website_slides_full/tests/test_ui_wslides.py
+++ b/addons/test_website_slides_full/tests/test_ui_wslides.py
@@ -16,7 +16,7 @@ class TestUi(tests.HttpCase):
})
self.env.ref('website_slides.slide_channel_demo_6_furn3')._remove_membership(self.env.ref('base.partner_demo').ids)
- self.phantom_js(
+ self.browser_js(
'/slides',
'odoo.__DEBUG__.services["web_tour.tour"].run("certification_member")',
'odoo.__DEBUG__.services["web_tour.tour"].tours.certification_member.ready',
diff --git a/addons/test_xlsx_export/tests/test_export.py b/addons/test_xlsx_export/tests/test_export.py
index 8aeeb45cbd0..7a2e50a80e3 100644
--- a/addons/test_xlsx_export/tests/test_export.py
+++ b/addons/test_xlsx_export/tests/test_export.py
@@ -6,7 +6,7 @@ from datetime import date
from unittest.mock import patch
from odoo import http
-from odoo.tests import common
+from odoo.tests import common, tagged
from odoo.addons.web.controllers.main import ExportXlsxWriter
from odoo.addons.test_mail.tests.common import mail_new_test_user
@@ -69,6 +69,7 @@ class XlsxCreatorCase(common.HttpCase):
self.assertFalse(value, "There are unexpected cells in the export")
+@tagged('-at_install', 'post_install')
class TestGroupedExport(XlsxCreatorCase):
model_name = 'export.group_operator'
diff --git a/addons/web/tests/test_image.py b/addons/web/tests/test_image.py
index 0795d78c925..161a064516c 100644
--- a/addons/web/tests/test_image.py
+++ b/addons/web/tests/test_image.py
@@ -6,9 +6,10 @@ import base64
from PIL import Image
-from odoo.tests.common import HttpCase
+from odoo.tests.common import HttpCase, tagged
+@tagged('-at_install', 'post_install')
class TestImage(HttpCase):
def test_01_content_image_resize_placeholder(self):
"""The goal of this test is to make sure the placeholder image is
diff --git a/addons/web/tests/test_js.py b/addons/web/tests/test_js.py
index 2547a82d978..ffaf11392f2 100644
--- a/addons/web/tests/test_js.py
+++ b/addons/web/tests/test_js.py
@@ -12,7 +12,7 @@ class WebSuite(odoo.tests.HttpCase):
def test_js(self):
# webclient desktop test suite
- self.phantom_js('/web/tests?mod=web&failfast', "", "", login='admin', timeout=1800)
+ self.browser_js('/web/tests?mod=web&failfast', "", "", login='admin', timeout=1800)
def test_check_suite(self):
# verify no js test is using `QUnit.only` as it forbid any other test to be executed
@@ -39,4 +39,4 @@ class MobileWebSuite(odoo.tests.HttpCase):
def test_mobile_js(self):
# webclient mobile test suite
- self.phantom_js('/web/tests/mobile?mod=web&failfast', "", "", login='admin', timeout=1800)
+ self.browser_js('/web/tests/mobile?mod=web&failfast', "", "", login='admin', timeout=1800)
diff --git a/addons/website/tests/test_page.py b/addons/website/tests/test_page.py
index eaa56dafcaf..3c0b294b606 100644
--- a/addons/website/tests/test_page.py
+++ b/addons/website/tests/test_page.py
@@ -184,6 +184,7 @@ class TestPage(common.TransactionCase):
self.assertTrue(website_id not in View.search([('name', 'in', ('Base', 'Extension'))]).mapped('website_id').ids, "Same for views")
+@tagged('-at_install', 'post_install')
class Crawler(HttpCase):
def test_unpublished_page(self):
Page = self.env['website.page']
diff --git a/addons/website/tests/test_ui.py b/addons/website/tests/test_ui.py
index 923ee7a098e..2ce007ab381 100644
--- a/addons/website/tests/test_ui.py
+++ b/addons/website/tests/test_ui.py
@@ -93,7 +93,7 @@ class TestUiTranslate(odoo.tests.HttpCase):
class TestUi(odoo.tests.HttpCase):
def test_01_public_homepage(self):
- self.phantom_js("/", "console.log('test successful')", "'website.content.snippets.animation' in odoo.__DEBUG__.services")
+ self.browser_js("/", "console.log('test successful')", "'website.content.snippets.animation' in odoo.__DEBUG__.services")
def test_02_admin_tour_banner(self):
self.start_tour("/", 'banner', login='admin')
diff --git a/addons/website/tests/test_views.py b/addons/website/tests/test_views.py
index c2b4cfb7ac1..d4b1ace2a5e 100644
--- a/addons/website/tests/test_views.py
+++ b/addons/website/tests/test_views.py
@@ -897,6 +897,7 @@ class TestCowViewSaving(common.TransactionCase):
# 3 | Extension 2 | , extended content 2 | 1 | 5 | website.extension_view_2
+@tagged('-at_install', 'post_install')
class Crawler(HttpCase):
def setUp(self):
super(Crawler, self).setUp()
diff --git a/addons/website/tests/test_website_visitor.py b/addons/website/tests/test_website_visitor.py
index 427816a0452..a8c469cc2b2 100644
--- a/addons/website/tests/test_website_visitor.py
+++ b/addons/website/tests/test_website_visitor.py
@@ -1,7 +1,8 @@
# coding: utf-8
-from odoo.tests import HttpCase
+from odoo.tests import HttpCase, tagged
+@tagged('-at_install', 'post_install')
class WebsiteVisitorTests(HttpCase):
def test_create_visitor_on_tracked_page(self):
Page = self.env['website.page']
diff --git a/addons/website_mail_channel/tests/test_unsubscribe.py b/addons/website_mail_channel/tests/test_unsubscribe.py
index 28934d5f49d..8da7bb5b08b 100644
--- a/addons/website_mail_channel/tests/test_unsubscribe.py
+++ b/addons/website_mail_channel/tests/test_unsubscribe.py
@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
-from odoo.tests import common
+from odoo.tests import common, tagged
from odoo.tools.misc import mute_logger, ustr
+@tagged('-at_install', 'post_install')
class TestConfirmUnsubscribe(common.HttpCase):
def setUp(self):
super(TestConfirmUnsubscribe, self).setUp()
diff --git a/addons/website_sale_wishlist/tests/test_wishlist_process.py b/addons/website_sale_wishlist/tests/test_wishlist_process.py
index 5f0fc99e08a..c9d487af8cf 100644
--- a/addons/website_sale_wishlist/tests/test_wishlist_process.py
+++ b/addons/website_sale_wishlist/tests/test_wishlist_process.py
@@ -3,8 +3,7 @@
import odoo.tests
-@odoo.tests.common.at_install(False)
-@odoo.tests.common.post_install(True)
+@odoo.tests.tagged('-at_install', 'post_install')
class TestUi(odoo.tests.HttpCase):
def test_01_wishlist_tour(self):
self.start_tour("/", 'shop_wishlist')
diff --git a/addons/website_slides/tests/test_ui_wslides.py b/addons/website_slides/tests/test_ui_wslides.py
index 50fd212e698..0aeca3bbf8b 100644
--- a/addons/website_slides/tests/test_ui_wslides.py
+++ b/addons/website_slides/tests/test_ui_wslides.py
@@ -15,7 +15,7 @@ class TestUi(tests.HttpCase):
})
self.env.ref('website_slides.slide_channel_demo_0_gard_0')._remove_membership(self.env.ref('base.partner_demo').ids)
- self.phantom_js(
+ self.browser_js(
'/slides',
'odoo.__DEBUG__.services["web_tour.tour"].run("course_member")',
'odoo.__DEBUG__.services["web_tour.tour"].tours.course_member.ready',
@@ -31,7 +31,7 @@ class TestUi(tests.HttpCase):
})
self.env.ref('website_slides.slide_channel_demo_0_gard_0')._remove_membership(self.env.ref('base.partner_demo').ids)
- self.phantom_js(
+ self.browser_js(
'/slides',
'odoo.__DEBUG__.services["web_tour.tour"].run("course_member")',
'odoo.__DEBUG__.services["web_tour.tour"].tours.course_member.ready',
@@ -44,7 +44,7 @@ class TestUi(tests.HttpCase):
user_portal.flush()
self.env.ref('website_slides.slide_channel_demo_0_gard_0')._remove_membership(self.env.ref('base.partner_demo_portal').ids)
- self.phantom_js(
+ self.browser_js(
'/slides',
'odoo.__DEBUG__.services["web_tour.tour"].run("course_member")',
'odoo.__DEBUG__.services["web_tour.tour"].tours.course_member.ready',
@@ -63,7 +63,7 @@ class TestUiYoutube(tests.HttpCase):
})
self.env.ref('website_slides.slide_channel_demo_3_furn0')._remove_membership(self.env.ref('base.partner_demo').ids)
- self.phantom_js(
+ self.browser_js(
'/slides',
'odoo.__DEBUG__.services["web_tour.tour"].run("course_member_youtube")',
'odoo.__DEBUG__.services["web_tour.tour"].tours.course_member_youtube.ready',
@@ -78,7 +78,7 @@ class TestUiYoutube(tests.HttpCase):
'groups_id': [(5, 0), (4, self.env.ref('base.group_user').id), (4, self.env.ref('website.group_website_designer').id)]
})
- self.phantom_js(
+ self.browser_js(
'/slides',
'odoo.__DEBUG__.services["web_tour.tour"].run("course_publisher")',
'odoo.__DEBUG__.services["web_tour.tour"].tours.course_publisher.ready',
diff --git a/addons/website_theme_install/tests/test_views.py b/addons/website_theme_install/tests/test_views.py
index 743482ec289..e94108067d6 100644
--- a/addons/website_theme_install/tests/test_views.py
+++ b/addons/website_theme_install/tests/test_views.py
@@ -54,6 +54,7 @@ class TestViews(TransactionCase):
self.assertEqual(specific_main_view_children.website_id, website_1, "..and the website is the correct one.")
+@tagged('-at_install', 'post_install')
class Crawler(HttpCase):
def test_multi_website_views_retrieving(self):
View = self.env['ir.ui.view']