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
51 lines
2.0 KiB
Python
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")
|