From a0fb215a2c5f2dfaf26b06f93c3a651f2420083d Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Tue, 13 Jan 2009 18:29:45 -0700 Subject: New Param: updated Str._convert_scalar() so it raises a ConversionError --- tests/test_ipalib/test_parameter.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/test_ipalib/test_parameter.py b/tests/test_ipalib/test_parameter.py index 27d348b99..47cea89d6 100644 --- a/tests/test_ipalib/test_parameter.py +++ b/tests/test_ipalib/test_parameter.py @@ -667,12 +667,18 @@ class test_Str(ClassChecker): Test the `ipalib.parameter.Str._convert_scalar` method. """ o = self.cls('my_str') - for value in (u'Hello', 42, 1.2, True): - assert o._convert_scalar(value) == unicode(value) - for value in ('Hello', (None,), [u'42', '42'], dict(hello=u'world')): - e = raises(TypeError, o._convert_scalar, value) - assert str(e) == \ - 'Can only implicitly convert int, float, or bool; got %r' % value + mthd = o._convert_scalar + for value in (u'Hello', 42, 1.2): + assert mthd(value) == unicode(value) + for value in [True, 'Hello', (u'Hello',), [42.3], dict(one=1)]: + e = raises(errors2.ConversionError, mthd, value) + assert e.name == 'my_str' + assert e.index is None + assert_equal(e.error, u'must be Unicode text') + e = raises(errors2.ConversionError, mthd, value, index=18) + assert e.name == 'my_str' + assert e.index == 18 + assert_equal(e.error, u'must be Unicode text') def test_rule_minlength(self): """ -- cgit