summaryrefslogtreecommitdiff
path: root/cheetah/Tests/VerifyType.py
diff options
context:
space:
mode:
Diffstat (limited to 'cheetah/Tests/VerifyType.py')
-rw-r--r--cheetah/Tests/VerifyType.py157
1 files changed, 157 insertions, 0 deletions
diff --git a/cheetah/Tests/VerifyType.py b/cheetah/Tests/VerifyType.py
new file mode 100644
index 0000000..7cab587
--- /dev/null
+++ b/cheetah/Tests/VerifyType.py
@@ -0,0 +1,157 @@
+import unittest
+
+from Cheetah.Utils import VerifyType
+from Cheetah import _verifytype
+
+class VerifyType_Test(unittest.TestCase):
+ def test_Verified(self):
+ arg = 'foo'
+ legalTypes = [str, unicode]
+ try:
+ rc = VerifyType.VerifyType(arg, 'arg', legalTypes, 'string')
+ assert rc
+ except TypeError:
+ self.fail('Should not have raised a TypeError here')
+
+ try:
+ rc = _verifytype.verifyType(arg, 'arg', legalTypes, 'string')
+ assert rc
+ except TypeError:
+ self.fail('Should not have raised a TypeError here')
+
+ def test_Unverified(self):
+ arg = 'foo'
+ legalTypes = [list, dict]
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType, arg,
+ 'arg', legalTypes, 'list or dict')
+ self.failUnlessRaises(TypeError, _verifytype.verifyType, arg,
+ 'arg', legalTypes, 'list or dict')
+
+ def test_IncorrectNumberOfArgs(self):
+ arg = 'foo'
+ legalTypes = [str, unicode]
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType)
+ self.failUnlessRaises(TypeError, _verifytype.verifyType)
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType, arg)
+ self.failUnlessRaises(TypeError, _verifytype.verifyType, arg)
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType, arg,
+ 'arg')
+ self.failUnlessRaises(TypeError, _verifytype.verifyType, arg,
+ 'arg')
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType, arg,
+ 'arg', legalTypes)
+ self.failUnlessRaises(TypeError, _verifytype.verifyType, arg,
+ 'arg', legalTypes)
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType, arg,
+ 'arg', legalTypes, 'string', 'errmsgExtra', 'one more')
+ self.failUnlessRaises(TypeError, _verifytype.verifyType, arg,
+ 'arg', legalTypes, 'string', 'errmsgExtra', 'one more')
+
+ def test_LegalTypesNotIterable(self):
+ arg = 'foo'
+ legalTypes = 1
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyType, arg,
+ 'arg', legalTypes, 'string')
+ self.failUnlessRaises(TypeError, _verifytype.verifyType, arg,
+ 'arg', legalTypes, 'string')
+
+class FakeClass(dict):
+ pass
+
+class VerifyTypeClass_Test(unittest.TestCase):
+ def test_VerifiedClass(self):
+ arg = FakeClass
+ legalTypes = [type]
+ try:
+ rc = VerifyType.VerifyTypeClass(arg, 'arg', legalTypes, '', dict)
+ assert rc
+ except TypeError:
+ self.fail('Should not have raised a TypeError here')
+
+ try:
+ rc = _verifytype.verifyTypeClass(arg, 'arg', legalTypes, 'foo', dict)
+ assert rc
+ except TypeError:
+ self.fail('Should not have raised a TypeError here')
+
+ def test_UnverifiedClass(self):
+ arg = FakeClass
+ legalTypes = [type]
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ legalTypes, 'subclass of list', list)
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ legalTypes, 'subclass of list', list)
+
+ def test_Verified(self):
+ arg = 'foo'
+ legalTypes = [str, unicode]
+ try:
+ rc = VerifyType.VerifyTypeClass(arg, 'arg', legalTypes, 'string', int)
+ assert rc
+ except TypeError:
+ self.fail('Should not have raised a TypeError here')
+
+ try:
+ rc = _verifytype.verifyTypeClass(arg, 'arg', legalTypes, 'string', int)
+ assert rc
+ except TypeError:
+ self.fail('Should not have raised a TypeError here')
+
+ def test_Unverified(self):
+ arg = 'foo'
+ legalTypes = [list, dict]
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ 'arg', legalTypes, 'list or dict', int)
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ 'arg', legalTypes, 'list or dict', int)
+
+ def test_IncorrectNumberOfArgs(self):
+ arg = 'foo'
+ legalTypes = [str, unicode]
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass)
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass)
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg)
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg)
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ 'arg')
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ 'arg')
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ 'arg', legalTypes)
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ 'arg', legalTypes)
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ 'arg', legalTypes, 'string')
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ 'arg', legalTypes, 'string')
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ 'arg', legalTypes, 'string', int, 'errmsgExtra', 'one more')
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ 'arg', legalTypes, 'string', int, 'errmsgExtra', 'one more')
+
+ def test_LegalTypesNotIterable(self):
+ arg = 'foo'
+ legalTypes = 1
+
+ self.failUnlessRaises(TypeError, VerifyType.VerifyTypeClass, arg,
+ 'arg', legalTypes, 'string', int)
+ self.failUnlessRaises(TypeError, _verifytype.verifyTypeClass, arg,
+ 'arg', legalTypes, 'string', int)
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()