From bc8be0a41effbd7a1ffe761829783afa8a59539e Mon Sep 17 00:00:00 2001 From: Martin Kosek Date: Thu, 14 Jul 2011 09:14:07 +0200 Subject: Improve long integer type validation Passing a number of "long" type to IPA Int parameter invokes user-unfriendly error message about incompatible types. This patch improves Int parameter with user understandable message along with maximum value he can pass. https://fedorahosted.org/freeipa/ticket/1346 --- ipalib/parameters.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'ipalib/parameters.py') diff --git a/ipalib/parameters.py b/ipalib/parameters.py index da3b05cf7..982b192a7 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -1066,6 +1066,30 @@ class Int(Number): maxvalue=self.maxvalue, ) + def _validate_scalar(self, value, index=None): + if type(value) is long: + # too big number for int type to hold + if self.maxvalue is not None: + raise ValidationError( + name=self.name, + value=value, + index=index, + error=_('can be at most %(maxvalue)d') % dict( + maxvalue=self.maxvalue, + ) + ) + else: + raise ValidationError( + name=self.name, + value=value, + index=index, + error=_('can be at most %(maxvalue)d') % dict( + maxvalue=MAXINT, + ) + ) + super(Int, self)._validate_scalar(value, index) + + class Float(Number): """ A parameter for floating-point values (stored in the ``float`` type). -- cgit