[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