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):
|
def normalize(self, **kw):
|
||||||
return dict(self.normalize_iter(kw))
|
return dict(self.normalize_iter(kw))
|
||||||
|
|
||||||
def default(self, **kw):
|
def default_iter(self, kw):
|
||||||
d = {}
|
for option in self.options:
|
||||||
for opt in self.options:
|
if option.name not in kw:
|
||||||
if opt.name not in kw:
|
value = option.default(**kw)
|
||||||
value = opt.default(**kw)
|
|
||||||
if value is not None:
|
if value is not None:
|
||||||
d[opt.name] = value
|
yield(option.name, value)
|
||||||
assert not set(kw).intersection(d)
|
|
||||||
kw.update(d)
|
def default(self, **kw):
|
||||||
return kw
|
return dict(self.default_iter(kw))
|
||||||
|
|
||||||
def validate(self, **kw):
|
def validate(self, **kw):
|
||||||
for (key, value) in kw.items():
|
for (key, value) in kw.items():
|
||||||
@ -201,7 +200,7 @@ class cmd(plugable.Plugin):
|
|||||||
|
|
||||||
def __call__(self, **kw):
|
def __call__(self, **kw):
|
||||||
kw = self.normalize(**kw)
|
kw = self.normalize(**kw)
|
||||||
kw = self.default(**kw)
|
kw.update(self.default(**kw))
|
||||||
self.validate(**kw)
|
self.validate(**kw)
|
||||||
self.execute(**kw)
|
self.execute(**kw)
|
||||||
|
|
||||||
|
@ -241,14 +241,13 @@ class test_cmd(ClassChecker):
|
|||||||
fill = dict(
|
fill = dict(
|
||||||
default_from='the default',
|
default_from='the default',
|
||||||
)
|
)
|
||||||
filled = dict(
|
default = dict(
|
||||||
option0='the default',
|
option0='the default',
|
||||||
option1='the default',
|
option1='the default',
|
||||||
default_from='the default',
|
|
||||||
)
|
)
|
||||||
sub = self.subcls()
|
sub = self.subcls()
|
||||||
assert sub.default(**no_fill) == no_fill
|
assert sub.default(**no_fill) == {}
|
||||||
assert sub.default(**fill) == filled
|
assert sub.default(**fill) == default
|
||||||
|
|
||||||
|
|
||||||
def test_obj():
|
def test_obj():
|
||||||
|
Loading…
Reference in New Issue
Block a user