diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-29 23:53:04 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-29 23:53:04 +0000 |
commit | 2fa8d3be74ca45ee5989dd53b7fb818b21d23680 (patch) | |
tree | 3c882207bcf537ffe1adfdc74c0047ffd79b192f /ipalib/tests/test_errors.py | |
parent | 44ff0b3d23c0473106a6c0da90cc8d80df98ee78 (diff) | |
download | freeipa.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.py | 88 |
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) |