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

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


Log message for revision 125288:
  Coverage for z.s._f.Dict.
  
  Collapse out-of-module tests.

Changed:
  U   zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py
  D   zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dictfield.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:20:14 UTC (rev 125287)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py	2012-04-25 18:20:19 UTC (rev 125288)
@@ -1653,6 +1653,112 @@
         self.assertEqual(log[0].context, inst)
 
 
+class DictTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.schema._field import Dict
+        return Dict
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_class_conforms_to_IDict(self):
+        from zope.interface.verify import verifyClass
+        from zope.schema.interfaces import IDict
+        verifyClass(IDict, self._getTargetClass())
+
+    def test_instance_conforms_to_IDict(self):
+        from zope.interface.verify import verifyObject
+        from zope.schema.interfaces import IDict
+        verifyObject(IDict, self._makeOne())
+
+    def test_ctor_key_type_not_IField(self):
+        self.assertRaises(ValueError, self._makeOne, key_type=object())
+
+    def test_ctor_value_type_not_IField(self):
+        self.assertRaises(ValueError, self._makeOne, value_type=object())
+
+    def test_validate_wrong_types(self):
+        from zope.schema.interfaces import WrongType
+        from zope.schema._compat import u
+        from zope.schema._compat import b
+        field = self._makeOne()
+        self.assertRaises(WrongType, field.validate, u(''))
+        self.assertRaises(WrongType, field.validate, b(''))
+        self.assertRaises(WrongType, field.validate, 1)
+        self.assertRaises(WrongType, field.validate, 1.0)
+        self.assertRaises(WrongType, field.validate, ())
+        self.assertRaises(WrongType, field.validate, [])
+        self.assertRaises(WrongType, field.validate, set())
+        self.assertRaises(WrongType, field.validate, frozenset())
+        self.assertRaises(WrongType, field.validate, object())
+
+    def test_validate_not_required(self):
+        field = self._makeOne(required=False)
+        field.validate({})
+        field.validate({1: 'b', 2: 'd'})
+        field.validate({3: 'a'})
+        field.validate(None)
+
+    def test_validate_required(self):
+        from zope.schema.interfaces import RequiredMissing
+        field = self._makeOne()
+        field.validate({})
+        field.validate({1: 'b', 2: 'd'})
+        field.validate({3: 'a'})
+        self.assertRaises(RequiredMissing, field.validate, None)
+
+    def test_validate_invalid_key_type(self):
+        from zope.schema.interfaces import WrongContainedType
+        from zope.schema._bootstrapfields import Int
+        field = self._makeOne(key_type=Int())
+        field.validate({})
+        field.validate({1: 'b', 2: 'd'})
+        field.validate({3: 'a'})
+        self.assertRaises(WrongContainedType, field.validate, {'a': 1})
+
+    def test_validate_invalid_value_type(self):
+        from zope.schema.interfaces import WrongContainedType
+        from zope.schema._bootstrapfields import Int
+        field = self._makeOne(value_type=Int())
+        field.validate({})
+        field.validate({'b': 1, 'd': 2})
+        field.validate({'a': 3})
+        self.assertRaises(WrongContainedType, field.validate, {1: 'a'})
+
+    def test_validate_min_length(self):
+        from zope.schema.interfaces import TooShort
+        field = self._makeOne(min_length=1)
+        field.validate({1: 'a'})
+        field.validate({1: 'a', 2: 'b'})
+        self.assertRaises(TooShort, field.validate, {})
+
+    def test_validate_max_length(self):
+        from zope.schema.interfaces import TooLong
+        field = self._makeOne(max_length=1)
+        field.validate({})
+        field.validate({1: 'a'})
+        self.assertRaises(TooLong, field.validate, {1: 'a', 2: 'b'})
+        self.assertRaises(TooLong, field.validate, {1: 'a', 2: 'b', 3: 'c'})
+
+    def test_validate_min_length_and_max_length(self):
+        from zope.schema.interfaces import TooLong
+        from zope.schema.interfaces import TooShort
+        field = self._makeOne(min_length=1, max_length=2)
+        field.validate({1: 'a'})
+        field.validate({1: 'a', 2: 'b'})
+        self.assertRaises(TooShort, field.validate, {})
+        self.assertRaises(TooLong, field.validate, {1: 'a', 2: 'b', 3: 'c'})
+
+    def test_bind_binds_key_and_value_types(self):
+        from zope.schema import Int
+        field = self._makeOne(key_type=Int(), value_type=Int())
+        context = DummyInstance()
+        field2 = field.bind(context)
+        self.assertEqual(field2.key_type.context, context)
+        self.assertEqual(field2.value_type.context, context)
+
+
 class DummyInstance(object):
     pass
 
@@ -1716,5 +1822,6 @@
         unittest.makeSuite(SetTests),
         unittest.makeSuite(FrozenSetTests),
         unittest.makeSuite(ObjectTests),
+        unittest.makeSuite(DictTests),
     ))
 

Deleted: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dictfield.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dictfield.py	2012-04-25 18:20:14 UTC (rev 125287)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dictfield.py	2012-04-25 18:20:19 UTC (rev 125288)
@@ -1,142 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Dictionary field tests
-"""
-import unittest
-
-from zope.schema.tests.test_field import FieldTestBase
-
-
-class DictTest(unittest.TestCase, FieldTestBase):
-    """Test the Dict Field."""
-
-    def _getTargetClass(self):
-        from zope.schema import Dict
-        return Dict
-
-    def testValidate(self):
-        from zope.schema._compat import u
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=False)
-        field.validate(None)
-        field.validate({})
-        field.validate({1: 'foo'})
-        field.validate({'a': 1})
-
-    def testValidateRequired(self):
-        from zope.schema._compat import u
-        from zope.schema.interfaces import RequiredMissing
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=True)
-        field.validate({})
-        field.validate({1: 'foo'})
-        field.validate({'a': 1})
-
-        self.assertRaises(RequiredMissing, field.validate, None)
-
-    def testValidateMinValues(self):
-        from zope.schema._compat import u
-        from zope.schema.interfaces import TooShort
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=False,
-                     min_length=1)
-        field.validate(None)
-        field.validate({1: 'a'})
-        field.validate({1: 'a', 2: 'b'})
-
-        self.assertRaises(TooShort, field.validate, {})
-
-    def testValidateMaxValues(self):
-        from zope.schema._compat import u
-        from zope.schema.interfaces import TooLong
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=False,
-                     max_length=1)
-        field.validate(None)
-        field.validate({})
-        field.validate({1: 'a'})
-
-        self.assertRaises(TooLong, field.validate, {1: 'a', 2: 'b'})
-        self.assertRaises(TooLong, field.validate, {1: 'a', 2: 'b', 3: 'c'})
-
-    def testValidateMinValuesAndMaxValues(self):
-        from zope.schema._compat import u
-        from zope.schema.interfaces import TooLong
-        from zope.schema.interfaces import TooShort
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=False,
-                     min_length=1, max_length=2)
-        field.validate(None)
-        field.validate({1: 'a'})
-        field.validate({1: 'a', 2: 'b'})
-
-        self.assertRaises(TooShort, field.validate, {})
-        self.assertRaises(TooLong, field.validate, {1: 'a', 2: 'b', 3: 'c'})
-
-    def testValidateValueType(self):
-        from zope.schema._compat import u
-        from zope.schema import Int
-        from zope.schema.interfaces import WrongContainedType
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=False,
-                     value_type=Int())
-        field.validate(None)
-        field.validate({'a': 5})
-        field.validate({'a': 2, 'b': 3})
-
-        self.assertRaises(WrongContainedType, field.validate, {1: ''} )
-        self.assertRaises(WrongContainedType, field.validate, {1: 3.14159} )
-        self.assertRaises(WrongContainedType, field.validate, {'a': ()} )
-
-    def testValidateKeyTypes(self):
-        from zope.schema._compat import u
-        from zope.schema import Int
-        from zope.schema.interfaces import WrongContainedType
-        field = self._makeOne(title=u('Dict field'),
-                     description=u(''), readonly=False, required=False,
-                     key_type=Int())
-        field.validate(None)
-        field.validate({5: 'a'})
-        field.validate({2: 'a', 2: 'b'})
-
-        self.assertRaises(WrongContainedType, field.validate, {'': 1} )
-        self.assertRaises(WrongContainedType, field.validate, {3.14159: 1} )
-        self.assertRaises(WrongContainedType, field.validate, {(): 'a'} )
-
-
-    def test_bind_binds_key_and_value_types(self):
-        from zope.schema._compat import u
-        from zope.schema import Int
-        field = self._makeOne(
-            __name__ = 'x',
-            title=u('Not required field'), description=u(''),
-            readonly=False, required=False,
-            key_type=Int(),
-            value_type=Int(),
-            )
-
-        class C(object):
-            x=None
-
-        c = C()
-        field2 = field.bind(c)
-
-        self.assertEqual(field2.key_type.context, c)
-        self.assertEqual(field2.value_type.context, c)
-
-
-def test_suite():
-    return unittest.TestSuite((
-        unittest.makeSuite(DictTest),
-    ))



More information about the checkins mailing list