diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 19:45:46 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 19:45:46 +0000 |
commit | f8bb60f02dc3cbb48c2cc6305e095e6936f5a0d6 (patch) | |
tree | caf207b1fdd00bc827ada0b10cbbb2851b8aa887 /ipalib/frontend.py | |
parent | a79434584eaab5692d716368b54572aa2b6be70c (diff) | |
download | freeipa.git-f8bb60f02dc3cbb48c2cc6305e095e6936f5a0d6.tar.gz freeipa.git-f8bb60f02dc3cbb48c2cc6305e095e6936f5a0d6.tar.xz freeipa.git-f8bb60f02dc3cbb48c2cc6305e095e6936f5a0d6.zip |
344: Added Param.__clone__() method; added corresponding unit tests
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r-- | ipalib/frontend.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index ce43ecea..ff0d3492 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -117,6 +117,9 @@ def parse_param_spec(spec): class Param(plugable.ReadOnly): + """ + A parameter accepted by a `Command`. + """ __nones = (None, '', tuple(), []) __default = dict( doc='', @@ -150,9 +153,18 @@ class Param(plugable.ReadOnly): allow_none=True ) self.__normalize = self.__kw['normalize'] - self.rules = (type_.validate,) + self.__kw['rules'] + self.rules = self.__check_type(tuple, 'rules') + self.all_rules = (type_.validate,) + self.rules lock(self) + def __clone__(self, **override): + """ + Return a new `Param` instance similar to this one. + """ + kw = dict(self.__kw) + kw.update(override) + return self.__class__(self.name, self.type, **kw) + def __check_type(self, type_, name, allow_none=False): value = self.__kw[name] return check_type(value, type_, name, allow_none) |