[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