diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-05 02:45:07 -0700 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-05 02:45:07 -0700 |
commit | 690ad4766d9265026d46fcc50118f341776f81b0 (patch) | |
tree | db61eceaf0fa4e681e0c847754f477ecbbec59b5 /ipalib | |
parent | 6d6c0d81ddbfc56672f0595a5f631c5e846d8b2b (diff) | |
download | freeipa-690ad4766d9265026d46fcc50118f341776f81b0.tar.gz freeipa-690ad4766d9265026d46fcc50118f341776f81b0.tar.xz freeipa-690ad4766d9265026d46fcc50118f341776f81b0.zip |
New Param: added Str length rule methods; added corresponding unit tests
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/parameter.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ipalib/parameter.py b/ipalib/parameter.py index 357e3441c..204fda66f 100644 --- a/ipalib/parameter.py +++ b/ipalib/parameter.py @@ -556,3 +556,36 @@ class Str(Bytes): raise TypeError( 'Can only implicitly convert int, float, or bool; got %r' % value ) + + def _rule_minlength(self, _, name, value): + """ + Check minlength constraint. + """ + assert type(value) is unicode + if len(value) < self.minlength: + return _('%(name)s must be at least %(minlength)d characters') % dict( + name=name, + minlength=self.minlength, + ) + + def _rule_maxlength(self, _, name, value): + """ + Check maxlength constraint. + """ + assert type(value) is unicode + if len(value) > self.maxlength: + return _('%(name)s can be at most %(maxlength)d characters') % dict( + name=name, + maxlength=self.maxlength, + ) + + def _rule_length(self, _, name, value): + """ + Check length constraint. + """ + assert type(value) is unicode + if len(value) != self.length: + return _('%(name)s must be exactly %(length)d characters') % dict( + name=name, + length=self.length, + ) |