[PATCH] cherrpy does not encode the return of get_error_page from changeset 3591:35064e17ea5d. The 3591:35064e17ea5d is lower than 3.2.5 version (changeset 3677:052f32b1d563). And it is higher than 3.2.4 version (changeset 3497:cd8acbc5f2b3).

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> issue: https://github.com/kimchi-project/kimchi/issues/333 Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- src/kimchi/root.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/kimchi/root.py b/src/kimchi/root.py index 3956ea6..5bad9b4 100644 --- a/src/kimchi/root.py +++ b/src/kimchi/root.py @@ -22,6 +22,7 @@ import json import os +from distutils.version import LooseVersion from kimchi import auth from kimchi import template from kimchi.i18n import messages @@ -49,7 +50,8 @@ class Root(Resource): def error_production_handler(self, status, message, traceback, version): data = {'code': status, 'reason': message} res = template.render('error.html', data) - if type(res) is unicode: + if (type(res) is unicode and + LooseVersion(cherrypy.__version__) < LooseVersion('3.2.5')): res = res.encode("utf-8") return res @@ -57,7 +59,8 @@ class Root(Resource): data = {'code': status, 'reason': message, 'call_stack': cherrypy._cperror.format_exc()} res = template.render('error.html', data) - if type(res) is unicode: + if (type(res) is unicode and + LooseVersion(cherrypy.__version__) < LooseVersion('3.2.5')): res = res.encode("utf-8") return res -- 1.8.4.2

On 03/03/2014 07:39 AM, shaohef@linux.vnet.ibm.com wrote:
From: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
issue: https://github.com/kimchi-project/kimchi/issues/333
Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- src/kimchi/root.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/kimchi/root.py b/src/kimchi/root.py index 3956ea6..5bad9b4 100644 --- a/src/kimchi/root.py +++ b/src/kimchi/root.py @@ -22,6 +22,7 @@ import json import os
+from distutils.version import LooseVersion from kimchi import auth from kimchi import template from kimchi.i18n import messages @@ -49,7 +50,8 @@ class Root(Resource): def error_production_handler(self, status, message, traceback, version): data = {'code': status, 'reason': message} res = template.render('error.html', data) - if type(res) is unicode: + if (type(res) is unicode and + LooseVersion(cherrypy.__version__) < LooseVersion('3.2.5')):
I'd rather to follow the suggestion made by Ming on other thread to avoid checking the cherrypy version.
res = res.encode("utf-8") return res
@@ -57,7 +59,8 @@ class Root(Resource): data = {'code': status, 'reason': message, 'call_stack': cherrypy._cperror.format_exc()} res = template.render('error.html', data) - if type(res) is unicode: + if (type(res) is unicode and + LooseVersion(cherrypy.__version__) < LooseVersion('3.2.5')): res = res.encode("utf-8") return res
participants (2)
-
Aline Manera
-
shaohef@linux.vnet.ibm.com