diff options
author | Martin Kosek <mkosek@redhat.com> | 2011-07-14 09:14:07 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-07-18 16:02:07 +0200 |
commit | bc8be0a41effbd7a1ffe761829783afa8a59539e (patch) | |
tree | 077b11a8ea12963b7a6c43c24881c03258fd9022 /ipalib/parameters.py | |
parent | 1a207bb23c88da19d4cc0eb455a2734278da41d2 (diff) | |
download | freeipa-bc8be0a41effbd7a1ffe761829783afa8a59539e.tar.gz freeipa-bc8be0a41effbd7a1ffe761829783afa8a59539e.tar.xz freeipa-bc8be0a41effbd7a1ffe761829783afa8a59539e.zip |
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
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r-- | ipalib/parameters.py | 24 |
1 files changed, 24 insertions, 0 deletions
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). |