Command.get_defaults() now returns param.default if param.type is a Bool

This commit is contained in:
Jason Gerard DeRose 2008-11-17 18:50:30 -07:00
parent 5c16047092
commit 8474bd01da
3 changed files with 10 additions and 6 deletions

View File

@ -693,8 +693,10 @@ class CLI(object):
help=option.doc,
)
if isinstance(option.type, ipa_types.Bool):
o.action = 'store_true'
o.default = option.default
if option.default is True:
o.action = 'store_false'
else:
o.action = 'store_true'
o.type = None
parser.add_option(o)
return parser

View File

@ -651,6 +651,8 @@ class Command(plugable.Plugin):
if kw.get(param.name, None) is None:
if param.required:
yield (param.name, param.get_default(**kw))
elif isinstance(param.type, ipa_types.Bool):
yield (param.name, param.default)
else:
yield (param.name, None)

View File

@ -832,8 +832,8 @@ class test_LocalOrRemote(ClassChecker):
api.register(example)
api.finalize()
cmd = api.Command.example
assert cmd() == ('execute', (None,), dict(server=None))
assert cmd('var') == ('execute', (u'var',), dict(server=None))
assert cmd() == ('execute', (None,), dict(server=False))
assert cmd('var') == ('execute', (u'var',), dict(server=False))
assert cmd(server=True) == ('forward', (None,), dict(server=True))
assert cmd('var', server=True) == \
('forward', (u'var',), dict(server=True))
@ -843,8 +843,8 @@ class test_LocalOrRemote(ClassChecker):
api.register(example)
api.finalize()
cmd = api.Command.example
assert cmd() == ('execute', (None,), dict(server=None))
assert cmd('var') == ('execute', (u'var',), dict(server=None))
assert cmd() == ('execute', (None,), dict(server=False))
assert cmd('var') == ('execute', (u'var',), dict(server=False))
assert cmd(server=True) == ('execute', (None,), dict(server=True))
assert cmd('var', server=True) == \
('execute', (u'var',), dict(server=True))