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/tests/test_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/tests/test_frontend.py')
-rw-r--r-- | ipalib/tests/test_frontend.py | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/ipalib/tests/test_frontend.py b/ipalib/tests/test_frontend.py index 43c1abf2..cc71f1c9 100644 --- a/ipalib/tests/test_frontend.py +++ b/ipalib/tests/test_frontend.py @@ -147,7 +147,8 @@ class test_Param(ClassChecker): assert read_only(o, 'multivalue') is False assert read_only(o, 'default') is None assert read_only(o, 'default_from') is None - assert read_only(o, 'rules') == (type_.validate,) + assert read_only(o, 'rules') == tuple() + assert read_only(o, 'all_rules') == (type_.validate,) # Check default type_: o = self.cls(name) @@ -173,6 +174,33 @@ class test_Param(ClassChecker): assert str(e) == \ 'Param.__init__() takes no such kwargs: another, whatever' + def test_clone(self): + """ + Test the `frontend.Param.__clone__` method. + """ + def compare(o, kw): + for (k, v) in kw.iteritems(): + assert getattr(o, k) == v, (k, v, getattr(o, k)) + default = dict( + required=False, + multivalue=False, + default=None, + default_from=None, + rules=tuple(), + ) + name = 'hair_color?' + type_ = ipa_types.Int() + o = self.cls(name, type_) + compare(o, default) + + override = dict(multivalue=True, default=42) + d = dict(default) + d.update(override) + clone = o.__clone__(**override) + assert clone.name == 'hair_color' + assert clone.type is o.type + compare(clone, d) + def test_convert(self): """ Test the `frontend.Param.convert` method. @@ -277,7 +305,8 @@ class test_Param(ClassChecker): # Scenario 1: multivalue=False o = self.cls(name, type_, rules=my_rules) - assert o.rules == (type_.validate, case_rule) + assert o.rules == my_rules + assert o.all_rules == (type_.validate, case_rule) o.validate(okay) e = raises(errors.RuleError, o.validate, fail_case) assert e.name is name |