[Checkins] SVN: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/ Coverage.

Tres Seaver cvs-admin at zope.org
Fri May 4 23:14:43 UTC 2012


Log message for revision 125649:
  Coverage.

Changed:
  U   zope.schema/branches/tseaver-test_cleanup/src/zope/schema/interfaces.py
  A   zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_interfaces.py

-=-
Modified: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/interfaces.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/interfaces.py	2012-05-04 23:14:34 UTC (rev 125648)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/interfaces.py	2012-05-04 23:14:40 UTC (rev 125649)
@@ -292,9 +292,9 @@
     """Field containing a unicode string."""
 
 # for things which are of the str type on both Python 2 and 3
-if PY3:
+if PY3: #pragma NO COVER
     _IStr = IText
-else:
+else: #pragma NO COVER
     _IStr = IBytes
 
 class IASCII(_IStr):
@@ -316,9 +316,9 @@
 class ITextLine(IText):
     """Field containing a unicode string without newlines."""
 
-if PY3:
+if PY3: #pragma NO COVER
     _IStrLine = ITextLine
-else:
+else: #pragma NO COVER
     _IStrLine = IBytesLine
 
 class IPassword(ITextLine):

Added: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_interfaces.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_interfaces.py	                        (rev 0)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_interfaces.py	2012-05-04 23:14:40 UTC (rev 125649)
@@ -0,0 +1,94 @@
+import unittest
+
+class Test__is_field(unittest.TestCase):
+
+    def _callFUT(self, value):
+        from zope.schema.interfaces import _is_field
+        return _is_field(value)
+
+    def test_non_fields(self):
+        from zope.schema._compat import b
+        from zope.schema._compat import u
+        self.assertEqual(self._callFUT(None), False)
+        self.assertEqual(self._callFUT(0), False)
+        self.assertEqual(self._callFUT(0.0), False)
+        self.assertEqual(self._callFUT(True), False)
+        self.assertEqual(self._callFUT(b('')), False)
+        self.assertEqual(self._callFUT(u('')), False)
+        self.assertEqual(self._callFUT(()), False)
+        self.assertEqual(self._callFUT([]), False)
+        self.assertEqual(self._callFUT({}), False)
+        self.assertEqual(self._callFUT(set()), False)
+        self.assertEqual(self._callFUT(frozenset()), False)
+        self.assertEqual(self._callFUT(object()), False)
+
+    def test_w_normal_fields(self):
+        from zope.schema import Text
+        from zope.schema import Bytes
+        from zope.schema import Int
+        from zope.schema import Float
+        from zope.schema import Decimal
+        self.assertEqual(self._callFUT(Text()), True)
+        self.assertEqual(self._callFUT(Bytes()), True)
+        self.assertEqual(self._callFUT(Int()), True)
+        self.assertEqual(self._callFUT(Float()), True)
+        self.assertEqual(self._callFUT(Decimal()), True)
+
+    def test_w_explicitly_provided(self):
+        from zope.interface import directlyProvides
+        from zope.schema.interfaces import IField
+        class Foo(object):
+            pass
+        foo = Foo()
+        self.assertEqual(self._callFUT(foo), False)
+        directlyProvides(foo, IField)
+        self.assertEqual(self._callFUT(foo), True)
+
+
+class Test__fields(unittest.TestCase):
+
+    def _callFUT(self, values):
+        from zope.schema.interfaces import _fields
+        return _fields(values)
+
+    def test_empty_containers(self):
+        self.assertEqual(self._callFUT(()), True)
+        self.assertEqual(self._callFUT([]), True)
+
+    def test_w_non_fields(self):
+        self.assertEqual(self._callFUT([None]), False)
+        self.assertEqual(self._callFUT(['']), False)
+        self.assertEqual(self._callFUT([object()]), False)
+
+    def test_w_fields(self):
+        from zope.schema import Text
+        from zope.schema import Bytes
+        from zope.schema import Int
+        from zope.schema import Float
+        from zope.schema import Decimal
+        self.assertEqual(self._callFUT([Text()]), True)
+        self.assertEqual(self._callFUT([Bytes()]), True)
+        self.assertEqual(self._callFUT([Int()]), True)
+        self.assertEqual(self._callFUT([Float()]), True)
+        self.assertEqual(self._callFUT([Decimal()]), True)
+        self.assertEqual(self._callFUT(
+                             [Text(), Bytes(), Int(), Float(), Decimal()]),
+                         True)
+
+    def test_w_mixed(self):
+        from zope.schema import Text
+        from zope.schema import Bytes
+        from zope.schema import Int
+        from zope.schema import Float
+        from zope.schema import Decimal
+        self.assertEqual(self._callFUT([Text(), 0]), False)
+        self.assertEqual(self._callFUT(
+                             [Text(), Bytes(), Int(), Float(), Decimal(), 0]),
+                         False)
+
+
+def test_suite():
+    return unittest.TestSuite((
+        unittest.makeSuite(Test__is_field),
+        unittest.makeSuite(Test__fields),
+    ))



More information about the checkins mailing list