summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Wirtel <stw@openerp.com>2012-09-12 11:59:46 +0200
committerStephane Wirtel <stw@openerp.com>2012-09-12 11:59:46 +0200
commitff438c8eb778f51774c54cfc6bd02f8d4a55cbc3 (patch)
tree9f910e948ef63f6bccb65893fd5bfd4cc14b01c4
parentf1f23c52ea1601b7588a91497ba46e5b826719b7 (diff)
[FIX] openerp.tools.misc.file_open: Very little fix to display coherent error message when file not found occurs.
bzr revid: stw@openerp.com-20120912095946-chjiq2y4bltisfw9
-rw-r--r--openerp/tools/misc.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py
index 2858a7e1f23..03004b0876f 100644
--- a/openerp/tools/misc.py
+++ b/openerp/tools/misc.py
@@ -142,6 +142,8 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False):
adps = addons.module.ad_paths
rtp = os.path.normcase(os.path.abspath(config['root_path']))
+ basename = name
+
if os.path.isabs(name):
# It is an absolute path
# Is it below 'addons_path' or 'root_path'?
@@ -154,7 +156,7 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False):
else:
# It is outside the OpenERP root: skip zipfile lookup.
base, name = os.path.split(name)
- return _fileopen(name, mode=mode, basedir=base, pathinfo=pathinfo)
+ return _fileopen(name, mode=mode, basedir=base, pathinfo=pathinfo, basename=basename)
if name.replace(os.sep, '/').startswith('addons/'):
subdir = 'addons'
@@ -172,16 +174,19 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False):
for adp in adps:
try:
return _fileopen(name2, mode=mode, basedir=adp,
- pathinfo=pathinfo)
+ pathinfo=pathinfo, basename=basename)
except IOError:
pass
# Second, try to locate in root_path
- return _fileopen(name, mode=mode, basedir=rtp, pathinfo=pathinfo)
+ return _fileopen(name, mode=mode, basedir=rtp, pathinfo=pathinfo, basename=basename)
-def _fileopen(path, mode, basedir, pathinfo):
+def _fileopen(path, mode, basedir, pathinfo, basename=None):
name = os.path.normpath(os.path.join(basedir, path))
+
+ if basename is None:
+ basename = name
# Give higher priority to module directories, which is
# a more common case than zipped modules.
if os.path.isfile(name):
@@ -220,8 +225,8 @@ def _fileopen(path, mode, basedir, pathinfo):
pass
# Not found
if name.endswith('.rml'):
- raise IOError('Report %r doesn\'t exist or deleted' % name)
- raise IOError('File not found: %s' % name)
+ raise IOError('Report %r doesn\'t exist or deleted' % basename)
+ raise IOError('File not found: %s' % basename)
#----------------------------------------------------------