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

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


Log message for revision 125291:
  Coverage for z.s._f.DottedName.
  
  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_dotted_name.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:29 UTC (rev 125290)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test__field.py	2012-04-25 18:20:35 UTC (rev 125291)
@@ -1912,6 +1912,110 @@
                           field.fromUnicode, u('http://example.com/\nDAV:'))
 
 
+class DottedNameTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.schema._field import DottedName
+        return DottedName
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
+    def test_class_conforms_to_IDottedName(self):
+        from zope.interface.verify import verifyClass
+        from zope.schema.interfaces import IDottedName
+        verifyClass(IDottedName, self._getTargetClass())
+
+    def test_instance_conforms_to_IDottedName(self):
+        from zope.interface.verify import verifyObject
+        from zope.schema.interfaces import IDottedName
+        verifyObject(IDottedName, self._makeOne())
+
+    def test_ctor_defaults(self):
+        dotted = self._makeOne()
+        self.assertEqual(dotted.min_dots, 0)
+        self.assertEqual(dotted.max_dots, None)
+
+    def test_ctor_min_dots_invalid(self):
+        self.assertRaises(ValueError, self._makeOne, min_dots=-1)
+
+    def test_ctor_min_dots_valid(self):
+        dotted = self._makeOne(min_dots=1)
+        self.assertEqual(dotted.min_dots, 1)
+
+    def test_ctor_max_dots_invalid(self):
+        self.assertRaises(ValueError, self._makeOne, min_dots=2, max_dots=1)
+
+    def test_ctor_max_dots_valid(self):
+        dotted = self._makeOne(max_dots=2)
+        self.assertEqual(dotted.max_dots, 2)
+
+    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('name')
+        field.validate('dotted.name')
+        field.validate(None)
+
+    def test_validate_required(self):
+        from zope.schema.interfaces import RequiredMissing
+        field = self._makeOne()
+        field.validate('name')
+        field.validate('dotted.name')
+        self.assertRaises(RequiredMissing, field.validate, None)
+
+    def test_validate_w_min_dots(self):
+        from zope.schema.interfaces import InvalidDottedName
+        field = self._makeOne(min_dots=1)
+        self.assertRaises(InvalidDottedName, field.validate, 'name')
+        field.validate('dotted.name')
+        field.validate('moar.dotted.name')
+
+    def test_validate_w_max_dots(self):
+        from zope.schema.interfaces import InvalidDottedName
+        field = self._makeOne(max_dots=1)
+        field.validate('name')
+        field.validate('dotted.name')
+        self.assertRaises(InvalidDottedName,
+                          field.validate, 'moar.dotted.name')
+
+    def test_validate_not_a_dotted_name(self):
+        from zope.schema.interfaces import ConstraintNotSatisfied
+        from zope.schema.interfaces import InvalidDottedName
+        field = self._makeOne()
+        self.assertRaises(InvalidDottedName, field.validate, '')
+        self.assertRaises(InvalidDottedName, field.validate, '\xab\xde')
+        self.assertRaises(ConstraintNotSatisfied,
+                          field.validate, 'http://example.com/\nDAV:')
+
+    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 InvalidDottedName
+        from zope.schema._compat import u
+        field = self._makeOne()
+        self.assertRaises(InvalidDottedName, field.fromUnicode, u(''))
+        self.assertRaises(ConstraintNotSatisfied,
+                          field.fromUnicode, u('http://example.com/\nDAV:'))
+
+
 class DummyInstance(object):
     pass
 
@@ -1978,5 +2082,6 @@
         unittest.makeSuite(DictTests),
         unittest.makeSuite(URITests),
         unittest.makeSuite(IdTests),
+        unittest.makeSuite(DottedNameTests),
     ))
 

Deleted: zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dotted_name.py
===================================================================
--- zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dotted_name.py	2012-04-25 18:20:29 UTC (rev 125290)
+++ zope.schema/branches/tseaver-test_cleanup/src/zope/schema/tests/test_dotted_name.py	2012-04-25 18:20:35 UTC (rev 125291)
@@ -1,62 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2010 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.
-#
-##############################################################################
-"""DottedName field tests
-"""
-import unittest
-
-from zope.schema.tests.test_field import FieldTestBase
-
-
-class DottedNameTest(unittest.TestCase, FieldTestBase):
-    """Test the DottedName Field."""
-
-    def _getTargetClass(self):
-        from zope.schema import DottedName
-        return DottedName
-
-    def testValidate(self):
-        from zope.schema.interfaces import InvalidDottedName
-        field = self._makeOne(required=False)
-
-        field.validate(None)
-        field.validate('foo.bar')
-        field.validate('foo.bar0')
-        field.validate('foo0.bar')
-        
-        # We used to incorrectly allow ^:
-        #  https://bugs.launchpad.net/zope.schema/+bug/191236
-        self.assertRaises(InvalidDottedName, field.validate, 'foo.bar^foobar')
-        self.assertRaises(InvalidDottedName, field.validate, 'foo^foobar.bar')
-        # dotted names cannot start with digits
-        self.assertRaises(InvalidDottedName, field.validate, 'foo.0bar')
-        self.assertRaises(InvalidDottedName, field.validate, '0foo.bar')
-
-    def testValidateRequired(self):
-        from zope.schema.interfaces import RequiredMissing
-        field = self._makeOne(required=True)
-        
-        field.validate('foo.bar')
-        
-        self.assertRaises(RequiredMissing, field.validate, None)
-
-    def testFromUnicode(self):
-        from zope.schema._compat import u
-        field = self._makeOne()
-        self.assertEqual(field.fromUnicode(u('foo')), 'foo')
-
-
-def test_suite():
-    return unittest.TestSuite((
-        unittest.makeSuite(DottedNameTest),
-    ))



More information about the checkins mailing list