[Checkins] SVN: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__bootstrapfields.py Coverage for z.s._bf.{Container, Iterable, Orderable, MinMaxLen}.
Tres Seaver
cvs-admin at zope.org
Mon Apr 23 21:58:38 UTC 2012
Log message for revision 125245:
Coverage for z.s._bf.{Container,Iterable,Orderable,MinMaxLen}.
Changed:
U zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__bootstrapfields.py
-=-
Modified: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__bootstrapfields.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__bootstrapfields.py 2012-04-23 21:58:28 UTC (rev 125244)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__bootstrapfields.py 2012-04-23 21:58:34 UTC (rev 125245)
@@ -294,17 +294,20 @@
class Derived(self._getTargetClass()):
pass
right = Derived()
- self.assertNotEqual(left, right)
+ self.assertEqual(left == right, False)
+ self.assertEqual(left != right, True)
def test___eq___same_type_different_attrs(self):
left = self._makeOne(required=True)
right = self._makeOne(required=False)
- self.assertNotEqual(left, right)
+ self.assertEqual(left == right, False)
+ self.assertEqual(left != right, True)
def test___eq___same_type_same_attrs(self):
left = self._makeOne()
right = self._makeOne()
- self.assertEqual(left, right)
+ self.assertEqual(left == right, True)
+ self.assertEqual(left != right, False)
def test_get_miss(self):
field = self._makeOne(__name__='nonesuch')
@@ -346,6 +349,116 @@
self.assertEqual(inst.extant, 'AFTER')
+class ContainerTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from zope.schema._bootstrapfields import Container
+ return Container
+
+ def _makeOne(self, *args, **kw):
+ return self._getTargetClass()(*args, **kw)
+
+ def test__validate_not_collection_not_iterable(self):
+ from zope.schema._bootstrapinterfaces import NotAContainer
+ cont = self._makeOne()
+ self.assertRaises(NotAContainer, cont._validate, object())
+
+ def test__validate_collection_but_not_iterable(self):
+ cont = self._makeOne()
+ class Dummy(object):
+ def __contains__(self, item):
+ return False
+ cont._validate(Dummy()) #doesn't raise
+
+ def test__validate_not_collection_but_iterable(self):
+ cont = self._makeOne()
+ class Dummy(object):
+ def __iter__(self):
+ return iter(())
+ cont._validate(Dummy()) #doesn't raise
+
+ def test__validate_w_collections(self):
+ cont = self._makeOne()
+ cont._validate(()) #doesn't raise
+ cont._validate([]) #doesn't raise
+ cont._validate('') #doesn't raise
+ cont._validate({}) #doesn't raise
+
+
+class IterableTests(ContainerTests):
+
+ def _getTargetClass(self):
+ from zope.schema._bootstrapfields import Iterable
+ return Iterable
+
+ def test__validate_collection_but_not_iterable(self):
+ from zope.schema._bootstrapinterfaces import NotAnIterator
+ itr = self._makeOne()
+ class Dummy(object):
+ def __contains__(self, item):
+ return False
+ self.assertRaises(NotAnIterator, itr._validate, Dummy())
+
+
+class OrderableTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from zope.schema._bootstrapfields import Orderable
+ return Orderable
+
+ def _makeOne(self, *args, **kw):
+ # Orderable is a mixin for a type derived from Field
+ from zope.schema._bootstrapfields import Field
+ class Mixed(self._getTargetClass(), Field):
+ pass
+ return Mixed(*args, **kw)
+
+ def test_ctor_defaults(self):
+ ordb = self._makeOne()
+ self.assertEqual(ordb.min, None)
+ self.assertEqual(ordb.max, None)
+ self.assertEqual(ordb.default, None)
+
+ def test_ctor_default_too_small(self):
+ # This test exercises _validate, too
+ from zope.schema._bootstrapinterfaces import TooSmall
+ self.assertRaises(TooSmall, self._makeOne, min=0, default=-1)
+
+ def test_ctor_default_too_large(self):
+ # This test exercises _validate, too
+ from zope.schema._bootstrapinterfaces import TooBig
+ self.assertRaises(TooBig, self._makeOne, max=10, default=11)
+
+
+class MinMaxLenTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from zope.schema._bootstrapfields import MinMaxLen
+ return MinMaxLen
+
+ def _makeOne(self, *args, **kw):
+ # MinMaxLen is a mixin for a type derived from Field
+ from zope.schema._bootstrapfields import Field
+ class Mixed(self._getTargetClass(), Field):
+ pass
+ return Mixed(*args, **kw)
+
+ def test_ctor_defaults(self):
+ mml = self._makeOne()
+ self.assertEqual(mml.min_length, 0)
+ self.assertEqual(mml.max_length, None)
+
+ def test_validate_too_short(self):
+ from zope.schema._bootstrapinterfaces import TooShort
+ mml = self._makeOne(min_length=1)
+ self.assertRaises(TooShort, mml._validate, ())
+
+ def test_validate_too_long(self):
+ from zope.schema._bootstrapinterfaces import TooLong
+ mml = self._makeOne(max_length=2)
+ self.assertRaises(TooLong, mml._validate, (0, 1, 2))
+
+
class DummyInst(object):
missing_value = object()
@@ -362,4 +475,8 @@
unittest.makeSuite(ValidatedPropertyTests),
unittest.makeSuite(DefaultPropertyTests),
unittest.makeSuite(FieldTests),
+ unittest.makeSuite(ContainerTests),
+ unittest.makeSuite(IterableTests),
+ unittest.makeSuite(OrderableTests),
+ unittest.makeSuite(MinMaxLenTests),
))
More information about the checkins
mailing list