mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
New Param: added unit tests for TypeError cases in DefaultFrom.__init__()
This commit is contained in:
parent
cb2f294cfe
commit
4d1681176a
@ -29,7 +29,7 @@ NULLS = (None, '', u'', tuple(), [])
|
||||
TYPE_ERROR = '%s: need a %r; got %r (which is a %r)'
|
||||
|
||||
|
||||
CALLABLE_ERROR = '%s: need a callable; got %r (a %r)'
|
||||
CALLABLE_ERROR = '%s: need a callable; got %r (which is a %r)'
|
||||
|
||||
|
||||
# Used for a tab (or indentation level) when formatting for CLI:
|
||||
|
@ -103,7 +103,9 @@ class DefaultFrom(ReadOnly):
|
||||
:param keys: Optional keys used for source values.
|
||||
"""
|
||||
if not callable(callback):
|
||||
raise TypeError('callback must be callable; got %r' % callback)
|
||||
raise TypeError(
|
||||
CALLABLE_ERROR % ('callback', callback, type(callback))
|
||||
)
|
||||
self.callback = callback
|
||||
if len(keys) == 0:
|
||||
fc = callback.func_code
|
||||
@ -112,7 +114,9 @@ class DefaultFrom(ReadOnly):
|
||||
self.keys = keys
|
||||
for key in self.keys:
|
||||
if type(key) is not str:
|
||||
raise_TypeError(key, str, 'keys')
|
||||
raise TypeError(
|
||||
TYPE_ERROR % ('keys', str, key, type(key))
|
||||
)
|
||||
lock(self)
|
||||
|
||||
def __call__(self, **kw):
|
||||
|
@ -48,6 +48,14 @@ class test_DefaultFrom(ClassChecker):
|
||||
o = self.cls(lam)
|
||||
assert read_only(o, 'keys') == ('first', 'last')
|
||||
|
||||
# Test that TypeError is raised when callback isn't callable:
|
||||
e = raises(TypeError, self.cls, 'whatever')
|
||||
assert str(e) == CALLABLE_ERROR % ('callback', 'whatever', str)
|
||||
|
||||
# Test that TypeError is raised when a key isn't an str:
|
||||
e = raises(TypeError, self.cls, callback, 'givenname', 17)
|
||||
assert str(e) == TYPE_ERROR % ('keys', str, 17, int)
|
||||
|
||||
def test_call(self):
|
||||
"""
|
||||
Test the `ipalib.parameter.DefaultFrom.__call__` method.
|
||||
|
Loading…
Reference in New Issue
Block a user