[Zope-Checkins] CVS: Zope3/lib/python/Schema/tests - testField.py:1.2 testSchema.py:1.3

Klaus Wölfel woelfel@aurora-systems.de
Tue, 25 Jun 2002 10:09:56 -0400


Update of /cvs-repository/Zope3/lib/python/Schema/tests
In directory cvs.zope.org:/tmp/cvs-serv12958/tests

Modified Files:
	testField.py testSchema.py 
Log Message:
Validators don't return anything any more. They only raise exceptions. ErrorNames are stored in the ErrorNames module.


=== Zope3/lib/python/Schema/tests/testField.py 1.1 => 1.2 ===
 from Schema import Field, Int, Str, Bool
 from Schema import IField
+from Schema import ErrorNames
 
 class FieldTestCase(TestCase):
+    def assertRaisesErrorNames(self, error_name, f, *args, **kw):
+        try:
+            f(*args, **kw)
+        except ValidationError, e:
+            self.assertEquals(error_name, e.error_name)
+            return
+        self.fail('Expected ValidationError')
+
     def test_validate(self):
         field = Field(
             title='Not required field',
             description='',
             readonly=0,
             required=0)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals('foo', field.validate('foo'))
-        self.assertEquals(1, field.validate(1))
-        self.assertEquals(0, field.validate(0))
-        self.assertEquals('', field.validate(''))
-        
+        try:
+            field.validate(None)
+            field.validate('foo')
+            field.validate(1)
+            field.validate(0)
+            field.validate('')
+        except ValidationError, e:
+            self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
     def test_validate_required(self):
         field = Field(
             title='Required field',
             description='',
             readonly=0,
             required=1)
-        self.assertRaises(ValidationError, field.validate, None)
-        self.assertEquals('foo', field.validate('foo'))
-        self.assertEquals(1, field.validate(1))
-        self.assertEquals(0, field.validate(0))
-        self.assertEquals('', field.validate(''))
-        
+        self.assertRaisesErrorNames(ErrorNames.RequiredMissing, field.validate, None)
+        try:
+            field.validate('foo')
+            field.validate(1)
+            field.validate(0)
+            field.validate('')
+        except ValidationError, e:
+            self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
 class StrTestCase(FieldTestCase):
     def test_validate(self):
         field = Str(
@@ -55,18 +70,24 @@
             description='',
             readonly=0,
             required=0)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals('foo', field.validate('foo'))
-        self.assertEquals('', field.validate(''))
- 
+        try:
+            field.validate(None)
+            field.validate('foo')
+            field.validate('')
+        except ValidationError, e:
+            self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
     def test_validate_required(self):
         field = Str(
             title='Str field required',
             description='',
             readonly=0,
             required=1)
-        self.assertRaises(ValidationError, field.validate, None)
-        self.assertEquals('foo', field.validate('foo'))
+        self.assertRaisesErrorNames(ErrorNames.RequiredMissing, field.validate, None)
+        try:
+            field.validate('foo')
+        except ValidationError, e:
+            self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
         self.assertRaises(ValidationError, field.validate, '')
 
 class BoolTestCase(FieldTestCase):
@@ -76,11 +97,14 @@
             description='',
             readonly=0,
             required=0)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals(1, field.validate(1))
-        self.assertEquals(0, field.validate(0))
-        self.assertEquals(1, field.validate(10))
-        self.assertEquals(1, field.validate(-10))
+        try:
+            field.validate(None)
+            field.validate(1)
+            field.validate(0)
+            field.validate(10)
+            field.validate(-10)
+        except ValidationError, e:
+            self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
 
     def test_validate(self):
         field = Bool(
@@ -88,7 +112,7 @@
             description='',
             readonly=0,
             required=1)
-        self.assertRaises(ValidationError, field.validate, None)
+        self.assertRaisesErrorNames(ErrorNames.RequiredMissing, field.validate, None)
 
 class IntTestCase(FieldTestCase):
     def test_validate(self):
@@ -97,21 +121,28 @@
             description='',
             readonly=0,
             required=0)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals(10, field.validate(10))
-        self.assertEquals(0, field.validate(0))
-        self.assertEquals(-1, field.validate(-1))
- 
+        try:
+            field.validate(None)
+            field.validate(10)
+            field.validate(0)
+            field.validate(-1)
+        except ValidationError, e:
+           self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
     def test_validate_required(self):
         field = Int(
             title='Int field required',
             description='',
             readonly=0,
             required=1)
-        self.assertRaises(ValidationError, field.validate, None)
-        self.assertEquals(10, field.validate(10))
-        self.assertEquals(0, field.validate(0))
-        self.assertEquals(-1, field.validate(-1))
+        self.assertRaisesErrorNames(ErrorNames.RequiredMissing, field.validate, None)
+
+        try:
+            field.validate(10)
+            field.validate(0)
+            field.validate(-1)
+        except ValidationError, e:
+           self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
 
     def test_validate_min(self):
         field = Int(
@@ -120,11 +151,15 @@
             readonly=0,
             required=0,
             min=10)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals(10, field.validate(10))
-        self.assertEquals(20, field.validate(20))
-        self.assertRaises(ValidationError, field.validate, 9)
-        self.assertRaises(ValidationError, field.validate, -10)
+        try:
+           field.validate(None)
+           field.validate(10)
+           field.validate(20)
+        except ValidationError, e:
+           self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
+        self.assertRaisesErrorNames(ErrorNames.TooSmall, field.validate, 9)
+        self.assertRaisesErrorNames(ErrorNames.TooSmall, field.validate, -10)
 
     def test_validate_max(self):
         field = Int(
@@ -133,11 +168,15 @@
             readonly=0,
             required=0,
             max=10)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals(5, field.validate(5))
-        self.assertEquals(9, field.validate(9))
-        self.assertRaises(ValidationError, field.validate, 10)
-        self.assertRaises(ValidationError, field.validate, 20)
+        try:
+           field.validate(None)
+           field.validate(5)
+           field.validate(9)
+        except ValidationError, e:
+           self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
+        self.assertRaisesErrorNames(ErrorNames.TooBig, field.validate, 11)
+        self.assertRaisesErrorNames(ErrorNames.TooBig, field.validate, 20)
 
     def test_validate_min_max(self):
         field = Int(
@@ -147,14 +186,18 @@
             required=0,
             min=0,
             max=10)
-        self.assertEquals(None, field.validate(None))
-        self.assertEquals(0, field.validate(0))
-        self.assertEquals(5, field.validate(5))
-        self.assertEquals(9, field.validate(9))
-        self.assertRaises(ValidationError, field.validate, -1)
-        self.assertRaises(ValidationError, field.validate, 10)
-        self.assertRaises(ValidationError, field.validate, 20)
-        
+        try:
+            field.validate(None)
+            field.validate(0)
+            field.validate(5)
+            field.validate(10)
+        except ValidationError, e:
+           self.fail('Expected no ValidationError, but we got %s.' % e.error_name)
+
+        self.assertRaisesErrorNames(ErrorNames.TooSmall, field.validate, -1)
+        self.assertRaisesErrorNames(ErrorNames.TooBig, field.validate, 11)
+        self.assertRaisesErrorNames(ErrorNames.TooBig, field.validate, 20)
+
 def test_suite():
     return TestSuite((
         makeSuite(FieldTestCase),


=== Zope3/lib/python/Schema/tests/testSchema.py 1.2 => 1.3 ===
 from Schema.Exceptions import StopValidation, ValidationError, ValidationErrorsAll
 from Schema._Schema import validateMapping,validateMappingAll
+from Schema import ErrorNames
 from Interface import Interface
 import Schema
 
+
 class ISchemaTest(Interface):
     title = Schema.Str(
-                      title="Title"
-		      ,description="Title"
-		      ,default=""
-		      ,required=1
-		      )
+              title="Title",
+              description="Title",
+              default="",
+              required=1,
+              )
     description = Schema.Str(
-                      title="Description"
-		      ,description="Description"
-		      ,default=""
-		      ,required=1
-		      )
+                title="Description",
+                description="Description",
+                default="",
+                required=1,
+              )
     spam = Schema.Str(
-                      title="Spam"
-		      ,description="Spam"
-		      ,default=""
-		      ,required=1
-		      )
-    
+                title="Spam",
+                description="Spam",
+                default="",
+                required=1,
+              )
+
 class SchemaTestCase(TestCase):
     def test_validateMapping(self):
         dict = {
-	        'title': 'A title',
-		'description': 'A particular description.',
-		'spam': 'Spam',
+                'title': 'A title',
+                'description': 'A particular description.',
+                'spam': 'Spam',
                 }
-	try:
-	    validateMapping(ISchemaTest, dict)
-	except ValidationError:
-	    self.fail()
-	     
+        try:
+            validateMapping(ISchemaTest, dict)
+        except ValidationError:
+            self.fail()
+
 
     def test_validateBadMapping(self):
-        dict = {'title': 'A title'
-		}
-	
-	self.assertRaises(ValidationError, validateMapping, ISchemaTest, dict)
+        dict = {'title': 'A title'}
+        self.assertRaises(ValidationError, validateMapping, ISchemaTest, dict)
 
     def test_validateMappingAll(self):
-        dict = {
-	        'title': 'A title',
-		'description': 'A particular description.',
-		'spam': 'Spam',
+        dict = {'title': 'A title',
+                'description': 'A particular description.',
+                'spam': 'Spam',
                 }
-	try:
-	    validateMappingAll(ISchemaTest, dict)
-	except ValidationErrorsAll:
-	    self.fail()
-	     
+        try:
+            validateMappingAll(ISchemaTest, dict)
+        except ValidationErrorsAll:
+            self.fail()
+
 
     def test_validateBadMappingAll(self):
-        dict = {'title': 'A title'
-		}
-	
-	try:
-	    validateMappingAll(ISchemaTest, dict)
-	except ValidationErrorsAll, e:
-	    error=ValidationError("Must be required")
-	    self.assertEqual(e.errors , [('description',error),
-	                                 ('spam',error)]
-			    )
-	self.assertRaises(ValidationError, validateMapping, ISchemaTest, dict)
+        dict = {'title': 'A title'}
+
+        try:
+            validateMappingAll(ISchemaTest, dict)
+        except ValidationErrorsAll, e:
+            error=ValidationError(ErrorNames.RequiredMissing)
+            self.assertEqual(e.errors ,
+                             [('description',error), ('spam',error)])
+            self.assertRaises(ValidationError, validateMapping, ISchemaTest, dict)
+            return
+        self.fail()
 
 def test_suite():
-    return TestSuite((
-        makeSuite(SchemaTestCase),
-        ))
+    return TestSuite((makeSuite(SchemaTestCase), ))
 
 if __name__ == '__main__':
     main(defaultTest='test_suite')