summaryrefslogtreecommitdiffstats
path: root/ipalib/tests/test_errors.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-29 23:53:04 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-29 23:53:04 +0000
commit2fa8d3be74ca45ee5989dd53b7fb818b21d23680 (patch)
tree3c882207bcf537ffe1adfdc74c0047ffd79b192f /ipalib/tests/test_errors.py
parent44ff0b3d23c0473106a6c0da90cc8d80df98ee78 (diff)
downloadfreeipa.git-2fa8d3be74ca45ee5989dd53b7fb818b21d23680.tar.gz
freeipa.git-2fa8d3be74ca45ee5989dd53b7fb818b21d23680.tar.xz
freeipa.git-2fa8d3be74ca45ee5989dd53b7fb818b21d23680.zip
225: Added errors.check_type() and errors.check_isinstance() functions; added corresponding unit tests
Diffstat (limited to 'ipalib/tests/test_errors.py')
-rw-r--r--ipalib/tests/test_errors.py88
1 files changed, 80 insertions, 8 deletions
diff --git a/ipalib/tests/test_errors.py b/ipalib/tests/test_errors.py
index 730502c5..9d08b5a7 100644
--- a/ipalib/tests/test_errors.py
+++ b/ipalib/tests/test_errors.py
@@ -25,32 +25,104 @@ from tstutil import raises, ClassChecker
from ipalib import errors
+type_format = '%s: need a %r; got %r'
+
+def check_TypeError(f, name, type_, value, **kw):
+ e = raises(TypeError, f, name, type_, value, **kw)
+ assert e.name is name
+ assert e.type is type_
+ assert e.value is value
+ assert str(e) == type_format % (name, type_, value)
+
+
def test_raise_TypeError():
"""
Tests the `errors.raise_TypeError` function.
"""
f = errors.raise_TypeError
- format = '%s: need a %r; got %r'
name = 'message'
type_ = unicode
value = 'Hello.'
- e = raises(TypeError, f, name, type_, value)
- assert e.name is name
- assert e.type is type_
- assert e.value is value
- assert str(e) == format % (name, type_, value)
+
+ check_TypeError(f, name, type_, value)
# name not an str:
fail = 42
e = raises(AssertionError, f, fail, type_, value)
- assert str(e) == format % ('name', str, fail)
+ assert str(e) == type_format % ('name', str, fail)
# type_ not a type:
fail = unicode()
e = raises(AssertionError, f, name, fail, value)
- assert str(e) == format % ('type_', type, fail)
+ assert str(e) == type_format % ('type_', type, fail)
# type(value) is type_:
fail = u'How are you?'
e = raises(AssertionError, f, name, type_, fail)
assert str(e) == 'value: %r is a %r' % (fail, type_)
+
+
+def test_check_type():
+ """
+ Tests the `errors.check_type` function.
+ """
+ f = errors.check_type
+ name = 'greeting'
+ value = 'How are you?'
+
+ # Should pass:
+ f(name, str, value)
+ f(name, str, None, allow_None=True)
+
+ # Should raise TypeError
+ check_TypeError(f, name, str, None)
+ check_TypeError(f, name, basestring, value)
+ check_TypeError(f, name, unicode, value)
+
+ # name not an str
+ fail = unicode(name)
+ e = raises(AssertionError, f, fail, str, value)
+ assert str(e) == type_format % ('name', str, fail)
+
+ # type_ not a type:
+ fail = 42
+ e = raises(AssertionError, f, name, fail, value)
+ assert str(e) == type_format % ('type_', type, fail)
+
+ # allow_None not a bool:
+ fail = 0
+ e = raises(AssertionError, f, name, str, value, allow_None=fail)
+ assert str(e) == type_format % ('allow_None', bool, fail)
+
+
+def test_check_isinstance():
+ """
+ Tests the `errors.check_isinstance` function.
+ """
+ f = errors.check_isinstance
+ name = 'greeting'
+ value = 'How are you?'
+
+ # Should pass:
+ f(name, str, value)
+ f(name, basestring, value)
+ f(name, str, None, allow_None=True)
+
+ # Should raise TypeError
+ check_TypeError(f, name, str, None)
+ check_TypeError(f, name, unicode, value)
+
+ # name not an str
+ fail = unicode(name)
+ e = raises(AssertionError, f, fail, str, value)
+ assert str(e) == type_format % ('name', str, fail)
+
+ # type_ not a type:
+ fail = 42
+ e = raises(AssertionError, f, name, fail, value)
+ assert str(e) == type_format % ('type_', type, fail)
+
+ # allow_None not a bool:
+ fail = 0
+ e = raises(AssertionError, f, name, str, value, allow_None=fail)
+ assert str(e) == type_format % ('allow_None', bool, fail)