[Kimchi-devel] [PATCH] Fix exception for model test
Paulo Ricardo Paz Vital
pvital at linux.vnet.ibm.com
Mon Feb 17 17:54:00 UTC 2014
--
Tested-by: Paulo Vital <pvital at linux.vnet.ibm.com>
Reviewed-by: Paulo Vital <pvital at linux.vnet.ibm.com>
On Mon, 2014-02-17 at 15:44 +0800, lvroyce at linux.vnet.ibm.com wrote:
> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>
> We don't start server in model test so cherrypy.request.app is None
> and exception translation cannot be used.
> Just do translation when server started.
>
> Signed-off-by: ShaoHe Feng<shaohef at linux.vnet.ibm.com>
> Signed-off-by: Royce Lv<lvroyce at linux.vnet.ibm.com>
> ---
> src/kimchi/exception.py | 18 ++++++++++++++----
> src/kimchi/i18n.py | 2 +-
> 2 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/src/kimchi/exception.py b/src/kimchi/exception.py
> index 952e243..2d974a8 100644
> --- a/src/kimchi/exception.py
> +++ b/src/kimchi/exception.py
> @@ -24,16 +24,28 @@ import cherrypy
> import gettext
>
>
> +from kimchi.i18n import messages as _messages
> from kimchi.template import get_lang, validate_language
>
>
> class KimchiException(Exception):
> def __init__(self, code='', args={}):
> + self.code = code
> +
> + if cherrypy.request.app:
> + msg = self._get_translation(args)
> + else:
> + msg = _messages.get(code, code) % args
> +
> + pattern = "%s: %s" % (code, msg)
> + Exception.__init__(self, pattern)
> +
> + def _get_translation(self, args):
> lang = validate_language(get_lang())
> paths = cherrypy.request.app.root.paths
> domain = cherrypy.request.app.root.domain
> messages = cherrypy.request.app.root.messages
> - text = messages.get(code, code)
> + text = messages.get(self.code, self.code)
>
> try:
> translation = gettext.translation(domain, paths.mo_dir, [lang])
> @@ -44,9 +56,7 @@ class KimchiException(Exception):
> if not isinstance(value, unicode):
> args[key] = unicode(value, 'utf-8')
>
> - msg = unicode(translation.gettext(text), 'utf-8') % args
> - pattern = "%s: %s" % (code, msg)
> - Exception.__init__(self, pattern)
> + return unicode(translation.gettext(text), 'utf-8') % args
>
>
> class NotFoundError(KimchiException):
> diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
> index fd61d4e..e9c003e 100644
> --- a/src/kimchi/i18n.py
> +++ b/src/kimchi/i18n.py
> @@ -57,7 +57,7 @@ messages = {
> "KCHISO0006E": _("Unexpected volume type for primary volume in ISO %(filename)s"),
> "KCHISO0007E": _("Bad format while reading volume descriptor in ISO %(filename)s"),
>
> - "KCHVM0001E": _("Virtual machine $(name)s already exists"),
> + "KCHVM0001E": _("Virtual machine %(name)s already exists"),
> "KCHVM0002E": _("Virtual machine %(name)s does not exist"),
> "KCHVM0003E": _("Unable to rename virtual machine %(name)s. The name %(new_name)s already exists or it is not powered off."),
> "KCHVM0004E": _("Unable to retrieve screenshot for stopped virtual machine %(name)s"),
More information about the Kimchi-devel
mailing list