diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-11 17:57:07 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-11 17:57:07 +0000 |
commit | 8a6ece2ffbfc142beb1d08e09809c388b3ede160 (patch) | |
tree | 1f8837b5d9c93562560061a44acb95151abe1eba | |
parent | fd6c215d596912493fa582079a7ec6de45466446 (diff) | |
download | freeipa.git-8a6ece2ffbfc142beb1d08e09809c388b3ede160.tar.gz freeipa.git-8a6ece2ffbfc142beb1d08e09809c388b3ede160.tar.xz freeipa.git-8a6ece2ffbfc142beb1d08e09809c388b3ede160.zip |
108: Changed cmd.default() so that it now only return dictionary of values for which defaults were generated; updated unit tests
-rw-r--r-- | ipalib/public.py | 19 | ||||
-rw-r--r-- | ipalib/tests/test_public.py | 7 |
2 files changed, 12 insertions, 14 deletions
diff --git a/ipalib/public.py b/ipalib/public.py index 17d00f04..d1c4fa2a 100644 --- a/ipalib/public.py +++ b/ipalib/public.py @@ -183,16 +183,15 @@ class cmd(plugable.Plugin): def normalize(self, **kw): return dict(self.normalize_iter(kw)) - def default(self, **kw): - d = {} - for opt in self.options: - if opt.name not in kw: - value = opt.default(**kw) + def default_iter(self, kw): + for option in self.options: + if option.name not in kw: + value = option.default(**kw) if value is not None: - d[opt.name] = value - assert not set(kw).intersection(d) - kw.update(d) - return kw + yield(option.name, value) + + def default(self, **kw): + return dict(self.default_iter(kw)) def validate(self, **kw): for (key, value) in kw.items(): @@ -201,7 +200,7 @@ class cmd(plugable.Plugin): def __call__(self, **kw): kw = self.normalize(**kw) - kw = self.default(**kw) + kw.update(self.default(**kw)) self.validate(**kw) self.execute(**kw) diff --git a/ipalib/tests/test_public.py b/ipalib/tests/test_public.py index 8f0ac963..4f3d382f 100644 --- a/ipalib/tests/test_public.py +++ b/ipalib/tests/test_public.py @@ -241,14 +241,13 @@ class test_cmd(ClassChecker): fill = dict( default_from='the default', ) - filled = dict( + default = dict( option0='the default', option1='the default', - default_from='the default', ) sub = self.subcls() - assert sub.default(**no_fill) == no_fill - assert sub.default(**fill) == filled + assert sub.default(**no_fill) == {} + assert sub.default(**fill) == default def test_obj(): |