[Checkins] SVN: zope.schema/trunk/src/zope/schema/ Suppress warnings, fix test when run under Python 2.6.

Tres Seaver tseaver at palladion.com
Mon Oct 6 09:09:50 EDT 2008


Log message for revision 91807:
  Suppress warnings, fix test when run under Python 2.6.

Changed:
  U   zope.schema/trunk/src/zope/schema/_field.py
  U   zope.schema/trunk/src/zope/schema/tests/test_setfield.py

-=-
Modified: zope.schema/trunk/src/zope/schema/_field.py
===================================================================
--- zope.schema/trunk/src/zope/schema/_field.py	2008-10-06 12:13:36 UTC (rev 91806)
+++ zope.schema/trunk/src/zope/schema/_field.py	2008-10-06 13:09:49 UTC (rev 91807)
@@ -21,7 +21,12 @@
 import re
 import decimal
 from datetime import datetime, date, timedelta, time
-from sets import Set as SetType
+import sys
+if sys.version_info < (2, 6): # deprecation warnings
+    from sets import Set as SetType
+    SET_TYPES = set, SetType
+else:
+    SET_TYPES = set,
 
 from zope.event import notify
 
@@ -182,8 +187,11 @@
     def fromUnicode(self, u):
         """
         >>> f = Decimal()
-        >>> f.fromUnicode("1.25")
-        Decimal("1.25")
+        >>> import decimal
+        >>> isinstance(f.fromUnicode("1.25"), decimal.Decimal)
+        True
+        >>> float(f.fromUnicode("1.25"))
+        1.25
         >>> f.fromUnicode("1.25.6")
         Traceback (most recent call last):
         ...
@@ -410,7 +418,7 @@
 class Set(AbstractCollection):
     """A field representing a set."""
     implements(ISet)
-    _type = SetType, set
+    _type = SET_TYPES
     def __init__(self, **kw):
         if 'unique' in kw: # set members are always unique
             raise TypeError(

Modified: zope.schema/trunk/src/zope/schema/tests/test_setfield.py
===================================================================
--- zope.schema/trunk/src/zope/schema/tests/test_setfield.py	2008-10-06 12:13:36 UTC (rev 91806)
+++ zope.schema/trunk/src/zope/schema/tests/test_setfield.py	2008-10-06 13:09:49 UTC (rev 91807)
@@ -16,7 +16,6 @@
 $Id$
 """
 from unittest import TestSuite, main, makeSuite
-import sets
 
 from zope.interface import implements, providedBy
 from zope.schema import Field, Set, Int, FrozenSet
@@ -28,6 +27,14 @@
 from zope.schema.interfaces import TooShort, TooLong
 from zope.schema.tests.test_field import CollectionFieldTestBase
 
+def _oldSet(values=()):
+    # Avoid importing 'sets' in Python 2.6, where it generates deprectaions.
+    import sys
+    if sys.version_info < (2, 6): # deprecation warnings
+        from sets import Set as SetType
+        return SetType(values)
+    return set(values)
+
 class SetTest(CollectionFieldTestBase):
     """Test the Tuple Field."""
 
@@ -37,9 +44,9 @@
         field = Set(title=u'Set field', description=u'',
                     readonly=False, required=False)
         field.validate(None)
-        field.validate(sets.Set())
-        field.validate(sets.Set((1, 2)))
-        field.validate(sets.Set((3,)))
+        field.validate(_oldSet())
+        field.validate(_oldSet((1, 2)))
+        field.validate(_oldSet((3,)))
         field.validate(set())
         field.validate(set((1, 2)))
         field.validate(set((3,)))
@@ -54,9 +61,9 @@
     def testValidateRequired(self):
         field = Set(title=u'Set field', description=u'',
                     readonly=False, required=True)
-        field.validate(sets.Set())
-        field.validate(sets.Set((1, 2)))
-        field.validate(sets.Set((3,)))
+        field.validate(_oldSet())
+        field.validate(_oldSet((1, 2)))
+        field.validate(_oldSet((3,)))
         field.validate(set())
         field.validate(set((1, 2)))
         field.validate(set((3,)))
@@ -66,7 +73,7 @@
     def testValidateRequiredAltMissingValue(self):
         missing = object()
         field = Set(required=True, missing_value=missing)
-        field.validate(sets.Set())
+        field.validate(_oldSet())
         field.validate(set())
 
         self.assertRaises(RequiredMissing, field.validate, missing)
@@ -84,13 +91,13 @@
         field = Set(title=u'Set field', description=u'',
                     readonly=False, required=False, min_length=2)
         field.validate(None)
-        field.validate(sets.Set((1, 2)))
-        field.validate(sets.Set((1, 2, 3)))
+        field.validate(_oldSet((1, 2)))
+        field.validate(_oldSet((1, 2, 3)))
         field.validate(set((1, 2)))
         field.validate(set((1, 2, 3)))
 
-        self.assertRaises(TooShort, field.validate, sets.Set(()))
-        self.assertRaises(TooShort, field.validate, sets.Set((3,)))
+        self.assertRaises(TooShort, field.validate, _oldSet(()))
+        self.assertRaises(TooShort, field.validate, _oldSet((3,)))
         self.assertRaises(TooShort, field.validate, set(()))
         self.assertRaises(TooShort, field.validate, set((3,)))
 
@@ -98,13 +105,13 @@
         field = Set(title=u'Set field', description=u'',
                     readonly=False, required=False, max_length=2)
         field.validate(None)
-        field.validate(sets.Set())
-        field.validate(sets.Set((1, 2)))
+        field.validate(_oldSet())
+        field.validate(_oldSet((1, 2)))
         field.validate(set())
         field.validate(set((1, 2)))
 
-        self.assertRaises(TooLong, field.validate, sets.Set((1, 2, 3, 4)))
-        self.assertRaises(TooLong, field.validate, sets.Set((1, 2, 3)))
+        self.assertRaises(TooLong, field.validate, _oldSet((1, 2, 3, 4)))
+        self.assertRaises(TooLong, field.validate, _oldSet((1, 2, 3)))
         self.assertRaises(TooLong, field.validate, set((1, 2, 3, 4)))
         self.assertRaises(TooLong, field.validate, set((1, 2, 3)))
 
@@ -113,13 +120,13 @@
                     readonly=False, required=False,
                     min_length=1, max_length=2)
         field.validate(None)
-        field.validate(sets.Set((3,)))
-        field.validate(sets.Set((1, 2)))
+        field.validate(_oldSet((3,)))
+        field.validate(_oldSet((1, 2)))
         field.validate(set((3,)))
         field.validate(set((1, 2)))
 
-        self.assertRaises(TooShort, field.validate, sets.Set())
-        self.assertRaises(TooLong, field.validate, sets.Set((1, 2, 3)))
+        self.assertRaises(TooShort, field.validate, _oldSet())
+        self.assertRaises(TooLong, field.validate, _oldSet((1, 2, 3)))
         self.assertRaises(TooShort, field.validate, set())
         self.assertRaises(TooLong, field.validate, set((1, 2, 3)))
 
@@ -128,14 +135,15 @@
                     readonly=False, required=False,
                     value_type=Int())
         field.validate(None)
-        field.validate(sets.Set((5,)))
-        field.validate(sets.Set((2, 3)))
+        field.validate(_oldSet((5,)))
+        field.validate(_oldSet((2, 3)))
         field.validate(set((5,)))
         field.validate(set((2, 3)))
 
-        self.assertRaises(WrongContainedType, field.validate, sets.Set(('',)))
+        self.assertRaises(WrongContainedType, field.validate,
+                          _oldSet(('',)))
         self.assertRaises(WrongContainedType, 
-                          field.validate, sets.Set((3.14159,)))
+                          field.validate, _oldSet((3.14159,)))
         self.assertRaises(WrongContainedType, field.validate, set(('',)))
         self.assertRaises(WrongContainedType, 
                           field.validate, set((3.14159,)))
@@ -185,7 +193,7 @@
         self.assertRaises(WrongType, field.validate, {})
         self.assertRaises(WrongType, field.validate, (1, 2, 3))
         self.assertRaises(WrongType, field.validate, set((1, 2, 3)))
-        self.assertRaises(WrongType, field.validate, sets.Set((1, 2, 3)))
+        self.assertRaises(WrongType, field.validate, _oldSet((1, 2, 3)))
 
     def testValidateRequired(self):
         field = FrozenSet(title=u'Set field', description=u'',



More information about the Checkins mailing list