summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2012-04-16 11:00:00 +0200
committerRob Crittenden <rcritten@redhat.com>2012-04-15 18:37:18 -0400
commit568de5027b9c7057e6f71cca4a45ced9ca7a7db6 (patch)
treee9e36f9e03df51a921db0cbf5a058ce4a79b4c1d /tests
parent0acdae0b4dc4809025bae6062a28fff99b105632 (diff)
downloadfreeipa-568de5027b9c7057e6f71cca4a45ced9ca7a7db6.tar.gz
freeipa-568de5027b9c7057e6f71cca4a45ced9ca7a7db6.tar.xz
freeipa-568de5027b9c7057e6f71cca4a45ced9ca7a7db6.zip
Fix dnsrecord_add interactive mode
dnsrecord_add interactive mode did not work correctly when more than one DNS record part was entered as command line option. It asked for remaining options more than once. This patch fixes this situation and also adds tests to cover this use case properly. https://fedorahosted.org/freeipa/ticket/2641
Diffstat (limited to 'tests')
-rw-r--r--tests/test_cmdline/test_cli.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/test_cmdline/test_cli.py b/tests/test_cmdline/test_cli.py
index 46b33d548..095577a3b 100644
--- a/tests/test_cmdline/test_cli.py
+++ b/tests/test_cmdline/test_cli.py
@@ -186,3 +186,52 @@ class TestCLIParsing(object):
version=API_VERSION)
finally:
self.run_command('dnszone_del', idnsname=u'test-example.com')
+
+ def test_dnsrecord_add_ask_for_missing_fields(self):
+ sshfp_parts = (1, 1, u'E3B72BA346B90570EED94BE9334E34AA795CED23')
+
+ with self.fake_stdin('SSHFP\n%d\n%d\n%s' % sshfp_parts):
+ self.check_command('dnsrecord-add test-example.com sshfp',
+ 'dnsrecord_add',
+ dnszoneidnsname=u'test-example.com',
+ idnsname=u'sshfp',
+ sshfp_part_fp_type=sshfp_parts[0],
+ sshfp_part_algorithm=sshfp_parts[1],
+ sshfp_part_fingerprint=sshfp_parts[2],
+ structured=False,
+ raw=False,
+ all=False,
+ force=False,
+ version=API_VERSION)
+
+ # NOTE: when a DNS record part is passed via command line, it is not
+ # converted to its base type when transfered via wire
+ with self.fake_stdin('%d\n%s' % (sshfp_parts[1], sshfp_parts[2])):
+ self.check_command('dnsrecord-add test-example.com sshfp ' \
+ '--sshfp-algorithm=%d' % sshfp_parts[0],
+ 'dnsrecord_add',
+ dnszoneidnsname=u'test-example.com',
+ idnsname=u'sshfp',
+ sshfp_part_fp_type=sshfp_parts[0],
+ sshfp_part_algorithm=unicode(sshfp_parts[1]), # passed via cmdline
+ sshfp_part_fingerprint=sshfp_parts[2],
+ structured=False,
+ raw=False,
+ all=False,
+ force=False,
+ version=API_VERSION)
+
+ with self.fake_stdin(sshfp_parts[2]):
+ self.check_command('dnsrecord-add test-example.com sshfp ' \
+ '--sshfp-algorithm=%d --sshfp-fp-type=%d' % (sshfp_parts[0], sshfp_parts[1]),
+ 'dnsrecord_add',
+ dnszoneidnsname=u'test-example.com',
+ idnsname=u'sshfp',
+ sshfp_part_fp_type=unicode(sshfp_parts[0]), # passed via cmdline
+ sshfp_part_algorithm=unicode(sshfp_parts[1]), # passed via cmdline
+ sshfp_part_fingerprint=sshfp_parts[2],
+ structured=False,
+ raw=False,
+ all=False,
+ force=False,
+ version=API_VERSION)