diff --git a/odoo/tests/loader.py b/odoo/tests/loader.py index 0da120d990f66ebb905b729f06a3761f0c9cd7b5..99ea7cf0f69a19b5fab9f05e240850f29f8b254a 100644 --- a/odoo/tests/loader.py +++ b/odoo/tests/loader.py @@ -18,13 +18,7 @@ def get_test_modules(module): feed unittest.TestLoader.loadTestsFromModule() """ # Try to import the module results = _get_tests_modules('odoo.addons', module) - - try: - importlib.import_module('odoo.upgrade.%s' % module) - except ImportError: - pass - else: - results += list(_get_upgrade_test_modules(module)) + results += list(_get_upgrade_test_modules(module)) return results @@ -53,16 +47,26 @@ def _get_tests_modules(path, module): return result def _get_upgrade_test_modules(module): - upg = importlib.import_module("odoo.upgrade") - for path in map(Path, upg.__path__): - for test in (path / module / "tests").glob("test_*.py"): - spec = importlib.util.spec_from_file_location(f"odoo.upgrade.{module}.tests.{test.stem}", test) - if not spec: - continue - pymod = importlib.util.module_from_spec(spec) - sys.modules[spec.name] = pymod - spec.loader.exec_module(pymod) - yield pymod + upgrade_modules = ( + f"odoo.upgrade.{module}", + f"odoo.addons.{module}.migrations", + f"odoo.addons.{module}.upgrades", + ) + for module_name in upgrade_modules: + try: + upg = importlib.import_module(module_name) + except ImportError: + continue + + for path in map(Path, upg.__path__): + for test in path.glob("tests/test_*.py"): + spec = importlib.util.spec_from_file_location(f"{upg.__name__}.tests.{test.stem}", test) + if not spec: + continue + pymod = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = pymod + spec.loader.exec_module(pymod) + yield pymod def make_suite(module_names, position='at_install'):