generator: tweak how MultiStrOpt defaults are handled
If a MultiStrOpt default is set to None or [], the best thing to do is just add: #multi_str_opt = to the sample config file. Change-Id: Ibaee466978870082be47a2135ae3f412d3efd623
This commit is contained in:
parent
020e68d8e8
commit
26eb1026f9
@ -186,8 +186,8 @@ class _OptFormatter(object):
|
||||
if isinstance(opt, cfg.MultiStrOpt):
|
||||
if opt.sample_default is not None:
|
||||
defaults = opt.sample_default
|
||||
elif opt.default is None:
|
||||
defaults = ['<None>']
|
||||
elif not opt.default:
|
||||
defaults = ['']
|
||||
else:
|
||||
defaults = opt.default
|
||||
else:
|
||||
@ -216,7 +216,9 @@ class _OptFormatter(object):
|
||||
for default_str in defaults:
|
||||
if default_str.strip() != default_str:
|
||||
default_str = '"%s"' % default_str
|
||||
lines.append('#%s = %s\n' % (opt.dest, default_str))
|
||||
if default_str:
|
||||
default_str = ' ' + default_str
|
||||
lines.append('#%s =%s\n' % (opt.dest, default_str))
|
||||
|
||||
self.writelines(lines)
|
||||
|
||||
|
@ -85,6 +85,11 @@ class GeneratorTestCase(base.BaseTestCase):
|
||||
'multi_opt': cfg.MultiStrOpt('multi_opt',
|
||||
default=['1', '2', '3'],
|
||||
help='multiple strings'),
|
||||
'multi_opt_none': cfg.MultiStrOpt('multi_opt_none',
|
||||
help='multiple strings'),
|
||||
'multi_opt_empty': cfg.MultiStrOpt('multi_opt_empty',
|
||||
default=[],
|
||||
help='multiple strings'),
|
||||
'multi_opt_sample_default': cfg.MultiStrOpt('multi_opt',
|
||||
default=['1', '2', '3'],
|
||||
sample_default=['5', '6'],
|
||||
@ -407,6 +412,28 @@ class GeneratorTestCase(base.BaseTestCase):
|
||||
#multi_opt = 1
|
||||
#multi_opt = 2
|
||||
#multi_opt = 3
|
||||
''')),
|
||||
('multi_opt_none',
|
||||
dict(opts=[('test', [(None, [opts['multi_opt_none']])])],
|
||||
expected='''[DEFAULT]
|
||||
|
||||
#
|
||||
# From test
|
||||
#
|
||||
|
||||
# multiple strings (multi valued)
|
||||
#multi_opt_none =
|
||||
''')),
|
||||
('multi_opt_empty',
|
||||
dict(opts=[('test', [(None, [opts['multi_opt_empty']])])],
|
||||
expected='''[DEFAULT]
|
||||
|
||||
#
|
||||
# From test
|
||||
#
|
||||
|
||||
# multiple strings (multi valued)
|
||||
#multi_opt_empty =
|
||||
''')),
|
||||
('str_opt_sample_default',
|
||||
dict(opts=[('test', [(None, [opts['str_opt_sample_default']])])],
|
||||
|
Loading…
x
Reference in New Issue
Block a user