[Checkins] SVN: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py Coverage for z.s._f.AbstractCollection.

Tres Seaver cvs-admin at zope.org
Wed Apr 25 18:20:02 UTC 2012


Log message for revision 125284:
  Coverage for z.s._f.AbstractCollection.

Changed:
  U   zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py

-=-
Modified: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py	2012-04-25 18:19:53 UTC (rev 125283)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py	2012-04-25 18:19:58 UTC (rev 125284)
@@ -965,6 +965,67 @@
         self.assertRaises(RequiredMissing, field.validate, None)
 
 
+class AbstractCollectionTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.schema._field import AbstractCollection
+        return AbstractCollection
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_ctor_defaults(self):
+        absc = self._makeOne()
+        self.assertEqual(absc.value_type, None)
+        self.assertEqual(absc.unique, False)
+
+    def test_ctor_explicit(self):
+        from zope.schema._bootstrapfields import Text
+        text = Text()
+        absc = self._makeOne(text, True)
+        self.assertEqual(absc.value_type, text)
+        self.assertEqual(absc.unique, True)
+
+    def test_ctor_w_non_field_value_type(self):
+        class NotAField(object):
+            pass
+        self.assertRaises(ValueError, self._makeOne, NotAField)
+
+    def test_bind_wo_value_Type(self):
+        absc = self._makeOne()
+        context = object()
+        bound = absc.bind(context)
+        self.assertEqual(bound.context, context)
+        self.assertEqual(bound.value_type, None)
+        self.assertEqual(bound.unique, False)
+
+    def test_bind_w_value_Type(self):
+        from zope.schema._bootstrapfields import Text
+        text = Text()
+        absc = self._makeOne(text, True)
+        context = object()
+        bound = absc.bind(context)
+        self.assertEqual(bound.context, context)
+        self.assertEqual(isinstance(bound.value_type, Text), True)
+        self.assertEqual(bound.value_type.context, context)
+        self.assertEqual(bound.unique, True)
+
+    def test__validate_wrong_contained_type(self):
+        from zope.schema.interfaces import WrongContainedType
+        from zope.schema._bootstrapfields import Text
+        text = Text()
+        absc = self._makeOne(text)
+        self.assertRaises(WrongContainedType, absc.validate, [1])
+
+    def test__validate_miss_uniqueness(self):
+        from zope.schema.interfaces import NotUnique
+        from zope.schema._bootstrapfields import Text
+        from zope.schema._compat import u
+        text = Text()
+        absc = self._makeOne(text, True)
+        self.assertRaises(NotUnique, absc.validate, [u('a'), u('a')])
+
+
 class DummyInstance(object):
     pass
 
@@ -1022,5 +1083,6 @@
         unittest.makeSuite(TimeTests),
         unittest.makeSuite(ChoiceTests),
         unittest.makeSuite(InterfaceFieldTests),
+        unittest.makeSuite(AbstractCollectionTests),
     ))
 



More information about the checkins mailing list