Skip to content
Snippets Groups Projects
Commit db6a1308 authored by Christophe Monniez's avatar Christophe Monniez
Browse files

[FIX] tests: test support for modules without `__init__.py`


Now that a test exists to enforce `__init__.py` in odoo module, we must
ensure that we keep the feature.

For that reason, a white-list system is added in `test_dunderinit` and a
test is added in order to be sure that a module without `__init__.py` can
be exists.

This this is made of a fake module `test_data_module` without
 `__init__.py` and a test module which ensure the fake module was
installed.

closes odoo/odoo#66778

X-original-commit: 506755ef
Related: odoo/enterprise#16653
Signed-off-by: default avatarChristophe Monniez (moc) <moc@odoo.com>
parent d1bd6acc
No related branches found
No related tags found
No related merge requests found
{
'name': 'test module to test data only modules',
'description': 'Fake module to test data module installation without __init__.py',
'version': '0.0.1',
'category': 'Hidden/Tests',
'sequence': 0,
}
{
'name': 'test installation of data module',
'description': 'Test data module (see test_data_module) installation',
'version': '0.0.1',
'category': 'Hidden/Tests',
'sequence': 10,
}
from . import test_data_module_installed
# -*- coding: utf-8 -*-
from odoo.tests import common
class TestDataModuleInstalled(common.TransactionCase):
""" Test that the fake data module `test_data_module` is correctly installed.
The use case of this test is that odoo supports installation of data modules only without `__init__.py`.
"""
def test_data_module_installed(self):
data_module = self.env['ir.module.module'].search([('name', '=', 'test_data_module')])
self.assertEqual(data_module.state, 'installed')
......@@ -9,13 +9,15 @@ from . import lint_case
_logger = logging.getLogger(__name__)
# whitelist that allow data modules only
WHITELIST = ['test_data_module', ]
class TestDunderinit(lint_case.LintCase):
def test_dunderinit(self):
""" Test that __init__.py exists in Odoo modules, otherwise they won't get packaged"""
modules_list = get_modules()
modules_list = [mod for mod in get_modules() if mod not in WHITELIST]
for mod in modules_list:
dunderinit_path = Path(get_module_path(mod)) / '__init__.py'
self.assertTrue(dunderinit_path.is_file(), "Missing `__init__.py ` in module %s" % mod)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment