[Checkins] SVN: zc.form/trunk/src/zc/form/browser/exceptionviews. - explictly converting to unicode since the arg is not always a string.

Christian Zagrodnick cz at gocept.com
Fri May 4 07:36:28 EDT 2007


Log message for revision 75344:
  - explictly converting to unicode since the arg is not always a string.
    Also added a test case for that.
  
  
  

Changed:
  U   zc.form/trunk/src/zc/form/browser/exceptionviews.py
  U   zc.form/trunk/src/zc/form/browser/exceptionviews.txt

-=-
Modified: zc.form/trunk/src/zc/form/browser/exceptionviews.py
===================================================================
--- zc.form/trunk/src/zc/form/browser/exceptionviews.py	2007-05-04 09:59:25 UTC (rev 75343)
+++ zc.form/trunk/src/zc/form/browser/exceptionviews.py	2007-05-04 11:36:27 UTC (rev 75344)
@@ -35,7 +35,7 @@
         """Convert an invariant error to an html snippet."""
         msg = self.context.args[0]
         msg = i18n.translate(msg, context=self.request, default=msg)
-        return u'<span class="error">%s</span>' % escape(msg)
+        return u'<span class="error">%s</span>' % escape(unicode(msg))
 
 
 class ValidationErrorView(AbstractErrorView):

Modified: zc.form/trunk/src/zc/form/browser/exceptionviews.txt
===================================================================
--- zc.form/trunk/src/zc/form/browser/exceptionviews.txt	2007-05-04 09:59:25 UTC (rev 75343)
+++ zc.form/trunk/src/zc/form/browser/exceptionviews.txt	2007-05-04 11:36:27 UTC (rev 75344)
@@ -18,3 +18,20 @@
     >>> view = ValidationErrorView(err, None)
     >>> view.snippet()
     u'<span class="error">F\xe4lscher!</span>'
+    
+HTML characters are quoted correctly::   
+
+    >>> err = ValidationError(u"The <error> & me.")
+    >>> view = ValidationErrorView(err, None)
+    >>> view.snippet()
+    u'<span class="error">The &lt;error&gt; &amp; me.</span>'
+
+
+The ConversionError has an exception as argument which is converted as well::
+
+    >>> from zope.app.form.interfaces import ConversionError
+    >>> err = ConversionError(ValidationError("not valid"))
+    >>> view = ValidationErrorView(err, None)
+    >>> view.snippet()
+    u'<span class="error">not valid</span>'
+



More information about the Checkins mailing list