Files
odoo_source/addons/test_website_modules/tests/test_configurator.py
T
Romain Derie 7329b5dc78 [ADD] test_website_modules: new website test module
The goal of this module is to be able to write tests that run and test the
`website` module business code with all the website modules installed (like
website_blog, website_sale etc).

This is, among other things, useful to test the configurator behavior.
Testing the configurator inside the `website` module would require the tour to
install modules, which is against our testing suite policy.
Such tests end up in `@standalone` testing suite, run only in nightly, meaning
anyone can break stuff without knowing. Such tests are way, way less efficient.

Community: https://github.com/odoo/odoo/pull/71993
Enterprise: https://github.com/odoo/enterprise/pull/18930

task-2518565
2021-07-30 22:03:18 +00:00

51 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from unittest.mock import patch
import odoo.tests
from odoo.addons.iap.tools.iap_tools import iap_jsonrpc_mocked
@odoo.tests.common.tagged('post_install', '-at_install')
class TestConfigurator(odoo.tests.HttpCase):
def _theme_upgrade_upstream(self):
# patch to prevent module install/upgrade during tests
pass
def setUp(self):
super().setUp()
def iap_jsonrpc_mocked_configurator(*args, **kwargs):
endpoint = args[0]
if endpoint.endswith('/api/website/1/configurator/industries'):
return {"industries": [
{"id": 1, "label": "abbey"},
{"id": 2, "label": "aboriginal and torres strait islander organisation"},
{"id": 3, "label": "aboriginal art gallery"},
{"id": 4, "label": "abortion clinic"},
{"id": 5, "label": "abrasives supplier"},
{"id": 6, "label": "abundant life church"}]}
elif '/api/website/1/configurator/recommended_themes' in endpoint:
return []
elif '/api/website/1/configurator/custom_resources/' in endpoint:
return {
'pages': {
'pricing': ['website.s_comparisons'],
'homepage': ['website.s_cover', 'website.s_text_image', 'website.s_numbers']},
'images': []}
iap_jsonrpc_mocked()
iap_patch = patch('odoo.addons.iap.tools.iap_tools.iap_jsonrpc', iap_jsonrpc_mocked_configurator)
iap_patch.start()
self.addCleanup(iap_patch.stop)
patcher = patch('odoo.addons.website.models.ir_module_module.IrModuleModule._theme_upgrade_upstream', wraps=self._theme_upgrade_upstream)
patcher.start()
self.addCleanup(patcher.stop)
def test_01_configurator_flow(self):
self.start_tour('/web#action=website.action_website_configuration', 'configurator_flow', login="admin")