mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
108: Changed cmd.default() so that it now only return dictionary of values for which defaults were generated; updated unit tests
This commit is contained in:
parent
fd6c215d59
commit
8a6ece2ffb
@ -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)
|
||||
|
||||
|
@ -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():
|
||||
|
Loading…
Reference in New Issue
Block a user