_exceptions.py
changeset 10703 3cb87b61b067
parent 10446 1e6655cff5ab
child 10829 550c2d27339f
--- a/_exceptions.py	Thu Sep 17 11:07:36 2015 +0200
+++ b/_exceptions.py	Thu Sep 17 12:02:40 2015 +0200
@@ -21,6 +21,8 @@
 
 from warnings import warn
 
+from six import PY3, text_type
+
 from logilab.common.decorators import cachedproperty
 
 from yams import ValidationError
@@ -30,14 +32,15 @@
 class CubicWebException(Exception):
     """base class for cubicweb server exception"""
     msg = ""
-    def __str__(self):
+    def __unicode__(self):
         if self.msg:
             if self.args:
                 return self.msg % tuple(self.args)
             else:
                 return self.msg
         else:
-            return u' '.join(unicode(arg) for arg in self.args)
+            return u' '.join(text_type(arg) for arg in self.args)
+    __str__ = __unicode__ if PY3 else lambda self: self.__unicode__().encode('utf-8')
 
 class ConfigurationError(CubicWebException):
     """a misconfiguration error"""