[GRASS-SVN] r61220 - grass/trunk/lib/python/exceptions
svn_grass at osgeo.org
svn_grass at osgeo.org
Wed Jul 9 08:16:18 PDT 2014
Author: wenzeslaus
Date: 2014-07-09 08:16:18 -0700 (Wed, 09 Jul 2014)
New Revision: 61220
Modified:
grass/trunk/lib/python/exceptions/__init__.py
Log:
pythonlib: add CalledModuleError exception used by gunittest and potentially to be used by PyGRASS or script.core
Modified: grass/trunk/lib/python/exceptions/__init__.py
===================================================================
--- grass/trunk/lib/python/exceptions/__init__.py 2014-07-09 14:28:38 UTC (rev 61219)
+++ grass/trunk/lib/python/exceptions/__init__.py 2014-07-09 15:16:18 UTC (rev 61220)
@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
+import subprocess
+
class DBError(Exception):
pass
@@ -35,3 +37,29 @@
class Usage(Exception):
pass
+
+
+# TODO: we inherit from subprocess to be aligned with check_call but it is needed?
+class CalledModuleError(subprocess.CalledProcessError):
+ """Raised when a called module ends with error (non-zero return code)
+
+ :param module: module name
+ :param code: some code snipped which contains parameters
+ :param rc: process returncode
+ :param error: errors provided by the module (stderr)
+ """
+ def __init__(self, module, code, returncode, errors=None):
+ super(CalledModuleError, self).__init__(returncode, module)
+ msg = _("Module run %s %s ended with error") % (module, code)
+ msg += _("\nProcess ended with non-zero return code %s") % returncode
+ if errors:
+ msg += _(". See the following errors:\n%s") % errors
+ else:
+ # here could be written "above" but it wouldn't work in some cases
+ # e.g., for testing framework
+ msg += _(". See errors in the (error) output.")
+ self.msg = msg
+ # TODO: handle other parameters
+
+ def __str__(self):
+ return self.msg
More information about the grass-commit
mailing list