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

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


Log message for revision 125290:
  Coverage for z.s._f.Id.

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

-=-
Modified: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/_compat.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/_compat.py	2012-04-25 18:20:24 UTC (rev 125289)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/_compat.py	2012-04-25 18:20:29 UTC (rev 125290)
@@ -12,6 +12,7 @@
     text_type = str
     binary_type = bytes
     integer_types = int,
+    non_native_string = bytes
 else: #pragma NO COVER
     def b(s):
         return s
@@ -21,3 +22,4 @@
     text_type = unicode
     binary_type = str
     integer_types = (int, long)
+    non_native_string = unicode

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:24 UTC (rev 125289)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py	2012-04-25 18:20:29 UTC (rev 125290)
@@ -1834,6 +1834,84 @@
                           field.fromUnicode, u('http://example.com/\nDAV:'))
 
 
+class IdTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.schema._field import Id
+        return Id
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_class_conforms_to_IId(self):
+        from zope.interface.verify import verifyClass
+        from zope.schema.interfaces import IId
+        verifyClass(IId, self._getTargetClass())
+
+    def test_instance_conforms_to_IId(self):
+        from zope.interface.verify import verifyObject
+        from zope.schema.interfaces import IId
+        verifyObject(IId, self._makeOne())
+
+    def test_validate_wrong_types(self):
+        from zope.schema.interfaces import WrongType
+        from zope.schema._compat import non_native_string
+        field = self._makeOne()
+        self.assertRaises(WrongType, field.validate, non_native_string(''))
+        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, {})
+        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('http://example.com/')
+        field.validate('dotted.name')
+        field.validate(None)
+
+    def test_validate_required(self):
+        from zope.schema.interfaces import RequiredMissing
+        field = self._makeOne()
+        field.validate('http://example.com/')
+        field.validate('dotted.name')
+        self.assertRaises(RequiredMissing, field.validate, None)
+
+    def test_validate_not_a_uri(self):
+        from zope.schema.interfaces import ConstraintNotSatisfied
+        from zope.schema.interfaces import InvalidId
+        field = self._makeOne()
+        self.assertRaises(InvalidId, field.validate, '')
+        self.assertRaises(InvalidId, field.validate, 'abc')
+        self.assertRaises(InvalidId, field.validate, '\xab\xde')
+        self.assertRaises(ConstraintNotSatisfied,
+                          field.validate, 'http://example.com/\nDAV:')
+
+    def test_fromUnicode_url_ok(self):
+        from zope.schema._compat import u
+        field = self._makeOne()
+        self.assertEqual(field.fromUnicode(u('http://example.com/')),
+                         'http://example.com/')
+
+    def test_fromUnicode_dotted_name_ok(self):
+        from zope.schema._compat import u
+        field = self._makeOne()
+        self.assertEqual(field.fromUnicode(u('dotted.name')), 'dotted.name')
+
+    def test_fromUnicode_invalid(self):
+        from zope.schema.interfaces import ConstraintNotSatisfied
+        from zope.schema.interfaces import InvalidId
+        from zope.schema._compat import u
+        field = self._makeOne()
+        self.assertRaises(InvalidId, field.fromUnicode, u(''))
+        self.assertRaises(InvalidId, field.fromUnicode, u('abc'))
+        self.assertRaises(ConstraintNotSatisfied,
+                          field.fromUnicode, u('http://example.com/\nDAV:'))
+
+
 class DummyInstance(object):
     pass
 
@@ -1899,5 +1977,6 @@
         unittest.makeSuite(ObjectTests),
         unittest.makeSuite(DictTests),
         unittest.makeSuite(URITests),
+        unittest.makeSuite(IdTests),
     ))
 



More information about the checkins mailing list