[Checkins] SVN: zope.schema/trunk/ Fix bug in ``fromUnicode`` method of ``DottedName`` which would fail

Brian Sutherland jinty at web.de
Mon Nov 14 16:41:38 UTC 2011


Log message for revision 123340:
  Fix bug in ``fromUnicode`` method of ``DottedName`` which would fail
  validation on being given unicode.
  

Changed:
  U   zope.schema/trunk/CHANGES.txt
  U   zope.schema/trunk/src/zope/schema/_field.py
  U   zope.schema/trunk/src/zope/schema/tests/test_dotted_name.py

-=-
Modified: zope.schema/trunk/CHANGES.txt
===================================================================
--- zope.schema/trunk/CHANGES.txt	2011-11-14 15:58:04 UTC (rev 123339)
+++ zope.schema/trunk/CHANGES.txt	2011-11-14 16:41:37 UTC (rev 123340)
@@ -5,7 +5,8 @@
 4.0.1 (unreleased)
 ------------------
 
-- None yet.
+- Fix bug in ``fromUnicode`` method of ``DottedName`` which would fail
+  validation on being given unicode.
 
 4.0.0 (2011-11-09)
 ------------------

Modified: zope.schema/trunk/src/zope/schema/_field.py
===================================================================
--- zope.schema/trunk/src/zope/schema/_field.py	2011-11-14 15:58:04 UTC (rev 123339)
+++ zope.schema/trunk/src/zope/schema/_field.py	2011-11-14 16:41:37 UTC (rev 123340)
@@ -806,6 +806,8 @@
                                     self.max_dots, value)
 
     def fromUnicode(self, value):
-        v = b(value.strip())
+        v = value.strip()
+        if not isinstance(v, self._type):
+            v = v.encode('ascii')
         self.validate(v)
         return v

Modified: zope.schema/trunk/src/zope/schema/tests/test_dotted_name.py
===================================================================
--- zope.schema/trunk/src/zope/schema/tests/test_dotted_name.py	2011-11-14 15:58:04 UTC (rev 123339)
+++ zope.schema/trunk/src/zope/schema/tests/test_dotted_name.py	2011-11-14 16:41:37 UTC (rev 123340)
@@ -15,7 +15,7 @@
 """
 from unittest import main, makeSuite
 
-from six import b
+from six import b, u
 from zope.schema import DottedName
 from zope.schema.tests.test_field import FieldTestBase
 from zope.schema.interfaces import InvalidDottedName, RequiredMissing
@@ -47,6 +47,11 @@
         
         self.assertRaises(RequiredMissing, field.validate, None)
 
+    def testFromUnicode(self):
+        field = self._Field_Factory()
+        self.assertEquals(field.fromUnicode(u('foo')), 'foo')
+
+
 def test_suite():
     suite = makeSuite(DottedNameTest)
     return suite



More information about the checkins mailing list