Run interactive_prompt callbacks after CSV values are split.

https://fedorahosted.org/freeipa/ticket/3334
This commit is contained in:
Jan Cholasta
2013-01-09 18:09:10 +01:00
committed by Rob Crittenden
parent 1c68c3edff
commit cfbdeebe66
2 changed files with 36 additions and 8 deletions

View File

@@ -1045,6 +1045,14 @@ class cli(backend.Executioner):
if self.env.interactive:
self.prompt_interactively(cmd, kw)
kw = cmd.split_csv(**kw)
if self.env.interactive:
try:
callbacks = cmd.get_callbacks('interactive_prompt')
except AttributeError:
pass
else:
for callback in callbacks:
callback(cmd, kw)
kw['version'] = API_VERSION
self.load_files(cmd, kw)
return kw
@@ -1207,14 +1215,6 @@ class cli(backend.Executioner):
param.label, param.confirm
)
try:
callbacks = cmd.get_callbacks('interactive_prompt')
except AttributeError:
pass
else:
for callback in callbacks:
callback(cmd, kw)
def load_files(self, cmd, kw):
"""
Load files from File parameters.

View File

@@ -237,3 +237,31 @@ class TestCLIParsing(object):
all=False,
force=False,
version=API_VERSION)
def test_dnsrecord_del_comma(self):
try:
self.run_command(
'dnszone_add', idnsname=u'test-example.com',
idnssoamname=u'ns.test-example.com', force=True)
except errors.NotFound:
raise nose.SkipTest('DNS is not configured')
try:
self.run_command(
'dnsrecord_add',
dnszoneidnsname=u'test-example.com',
idnsname=u'test',
txtrecord=u'"A pretty little problem," said Holmes.')
with self.fake_stdin('no\nyes\n'):
self.check_command(
'dnsrecord_del test-example.com test',
'dnsrecord_del',
dnszoneidnsname=u'test-example.com',
idnsname=u'test',
del_all=False,
txtrecord=[u'"A pretty little problem," said Holmes.'],
structured=False,
raw=False,
all=False,
version=API_VERSION)
finally:
self.run_command('dnszone_del', idnsname=u'test-example.com')