diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-10-10 19:14:30 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-10-10 19:14:30 +0200 |
| commit | 0be264b29eac11a5dec5e6565d23d4ea86bd905a (patch) | |
| tree | 79362f2340c89cb3cf2e8d8a467f357b7c7a8326 /odoo/modules/module.py | |
| parent | cf753a7fdf1739dcf37d2ad74f4c8efb3d4ff3b3 (diff) | |
| parent | e1104ac344cbc349a46b22339b13dfe9cbab8bcb (diff) | |
[MERGE] forward port branch 11.0 up to e1104ac344c
Diffstat (limited to 'odoo/modules/module.py')
| -rw-r--r-- | odoo/modules/module.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/odoo/modules/module.py b/odoo/modules/module.py index b249f01c1d9..15f4aae9a50 100644 --- a/odoo/modules/module.py +++ b/odoo/modules/module.py @@ -139,13 +139,13 @@ def initialize_sys_path(): # add base module path base_path = os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'addons')) - if base_path not in ad_paths: + if base_path not in ad_paths and os.path.isdir(base_path): ad_paths.append(base_path) # add odoo.addons.__path__ for ad in __import__('odoo.addons').addons.__path__: ad = os.path.abspath(ad) - if ad not in ad_paths: + if ad not in ad_paths and os.path.isdir(ad): ad_paths.append(ad) if not hooked: @@ -328,9 +328,9 @@ def load_information_from_description_file(module, mod_path=None): 'depends data demo test init_xml update_xml demo_xml'.split(), iter(list, None))) - f = tools.file_open(manifest_file) + f = tools.file_open(manifest_file, mode='rb') try: - info.update(ast.literal_eval(f.read())) + info.update(ast.literal_eval(pycompat.to_native(f.read()))) finally: f.close() @@ -432,12 +432,19 @@ def get_test_modules(module): modpath = 'odoo.addons.' + module try: mod = importlib.import_module('.tests', modpath) + except ImportError as e: # will also catch subclass ModuleNotFoundError of P3.6 + # Hide ImportErrors on `tests` sub-module, but display other exceptions + if pycompat.PY2: + if e.message.startswith('No module named') and e.message.endswith("tests"): + return [] + else: + if e.name == modpath + '.tests' and e.msg.startswith('No module named'): + return [] + _logger.exception('Can not `import %s`.', module) + return [] except Exception as e: - # If module has no `tests` sub-module, no problem. - if not pycompat.text_type(e).startswith(u'No module named'): - _logger.exception('Can not `import %s`.', module) + _logger.exception('Can not `import %s`.', module) return [] - if hasattr(mod, 'fast_suite') or hasattr(mod, 'checks'): _logger.warn( "Found deprecated fast_suite or checks attribute in test module " |
