[Checkins] SVN: zope.schema/trunk/ - Make IBool interface of Bool more important than IFromUnicode so adapters
Christian Zagrodnick
cz at gocept.com
Mon Mar 23 08:51:31 EDT 2009
Log message for revision 98319:
- Make IBool interface of Bool more important than IFromUnicode so adapters
registered for IBool take precendence over adapters registered for
IFromUnicode.
Changed:
U zope.schema/trunk/CHANGES.txt
U zope.schema/trunk/src/zope/schema/_bootstrapfields.py
U zope.schema/trunk/src/zope/schema/_field.py
U zope.schema/trunk/src/zope/schema/tests/test_boolfield.py
-=-
Modified: zope.schema/trunk/CHANGES.txt
===================================================================
--- zope.schema/trunk/CHANGES.txt 2009-03-23 12:51:15 UTC (rev 98318)
+++ zope.schema/trunk/CHANGES.txt 2009-03-23 12:51:31 UTC (rev 98319)
@@ -15,6 +15,11 @@
"vocabulary" attribute description to be more sensible, making it
``zope.schema.Field`` instead of plain ``zope.interface.Attribute``.
+- Make IBool interface of Bool more important than IFromUnicode so adapters
+ registered for IBool take precendence over adapters registered for
+ IFromUnicode.
+
+
3.5.3 (2009-03-10)
------------------
Modified: zope.schema/trunk/src/zope/schema/_bootstrapfields.py
===================================================================
--- zope.schema/trunk/src/zope/schema/_bootstrapfields.py 2009-03-23 12:51:15 UTC (rev 98318)
+++ zope.schema/trunk/src/zope/schema/_bootstrapfields.py 2009-03-23 12:51:31 UTC (rev 98319)
@@ -334,8 +334,6 @@
class Bool(Field):
"""A field representing a Bool."""
- implements(IFromUnicode)
-
_type = type(True)
if _type is not type(1):
Modified: zope.schema/trunk/src/zope/schema/_field.py
===================================================================
--- zope.schema/trunk/src/zope/schema/_field.py 2009-03-23 12:51:15 UTC (rev 98318)
+++ zope.schema/trunk/src/zope/schema/_field.py 2009-03-23 12:51:31 UTC (rev 98319)
@@ -72,6 +72,7 @@
classImplements(TextLine, ITextLine)
classImplements(Password, IPassword)
classImplements(Bool, IBool)
+classImplements(Bool, IFromUnicode)
classImplements(Int, IInt)
class SourceText(Text):
Modified: zope.schema/trunk/src/zope/schema/tests/test_boolfield.py
===================================================================
--- zope.schema/trunk/src/zope/schema/tests/test_boolfield.py 2009-03-23 12:51:15 UTC (rev 98318)
+++ zope.schema/trunk/src/zope/schema/tests/test_boolfield.py 2009-03-23 12:51:31 UTC (rev 98319)
@@ -17,9 +17,12 @@
"""
from unittest import main, makeSuite
from zope.schema import Bool
-from zope.schema.interfaces import RequiredMissing
+from zope.schema.interfaces import RequiredMissing, IBool, IFromUnicode
from zope.schema.tests.test_field import FieldTestBase
+import zope.interface.adapter
+import zope.interface
+
class BoolTest(FieldTestBase):
"""Test the Bool Field."""
@@ -40,7 +43,27 @@
self.assertRaises(RequiredMissing, field.validate, None)
+ def testIBoolIsMoreImportantThanIFromUnicode(self):
+ registry = zope.interface.adapter.AdapterRegistry()
+ def adapt_bool(context):
+ return 'bool'
+
+ def adapt_from_unicode(context):
+ return 'unicode'
+
+ class IAdaptTo(zope.interface.Interface):
+ pass
+
+ registry.register((IBool,), IAdaptTo, u'', adapt_bool)
+ registry.register((IFromUnicode,), IAdaptTo, u'', adapt_from_unicode)
+
+ field = Bool(title=u'Bool field', description=u'',
+ readonly=False, required=True)
+
+ self.assertEqual('bool', registry.queryAdapter(field, IAdaptTo))
+
+
def test_suite():
return makeSuite(BoolTest)
More information about the Checkins
mailing list