summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2014-08-20 18:53:49 +0200
committerMartin Kosek <mkosek@redhat.com>2014-09-05 12:11:39 +0200
commit155126b524f990facf767171f94d3733663602f8 (patch)
tree003d7910655909e3b6a9e8daebc27bb37edf8d78
parent3be8ff6c46184d9ec81ee2f75b0e85fe5ccffeb5 (diff)
downloadfreeipa-155126b524f990facf767171f94d3733663602f8.tar.gz
freeipa-155126b524f990facf767171f94d3733663602f8.tar.xz
freeipa-155126b524f990facf767171f94d3733663602f8.zip
Tests: DNS dsrecord validation
Part of: https://fedorahosted.org/freeipa/ticket/3801 Reviewed-By: Petr Spacek <pspacek@redhat.com> Reviewed-By: Martin Kosek <mkosek@redhat.com>
-rw-r--r--ipatests/test_xmlrpc/test_dns_plugin.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/ipatests/test_xmlrpc/test_dns_plugin.py b/ipatests/test_xmlrpc/test_dns_plugin.py
index 1cfbbdb9e..ea67f774a 100644
--- a/ipatests/test_xmlrpc/test_dns_plugin.py
+++ b/ipatests/test_xmlrpc/test_dns_plugin.py
@@ -147,6 +147,12 @@ dlv_dn = DN(('idnsname', dlv), zone1_dn)
dlvrec = u'60485 5 1 2BB183AF5F22588179A53B0A98631FAD1A292118'
+ds = u'ds'
+ds_dnsname = DNSName(ds)
+ds_dn = DN(('idnsname', ds), zone1_dn)
+
+ds_rec = u'0 0 0 00'
+
tlsa = u'tlsa'
tlsa_dnsname = DNSName(tlsa)
tlsa_dn = DN(('idnsname', tlsa), zone1_dn)
@@ -1321,6 +1327,83 @@ class test_dns(Declarative):
dict(
+ desc='Try to add DS record to zone %r apex, using dnsrecord_add' % (zone1),
+ command=('dnsrecord_add', [zone1, zone1_absolute], {'dsrecord': ds_rec}),
+ expected=errors.ValidationError(
+ name="dsrecord",
+ error=u'DS record must not be in zone apex (RFC 4035 section 2.4)'
+ ),
+ ),
+
+
+ dict(
+ desc='Try to add DS record %r without NS record in RRset, using dnsrecord_add' % (ds),
+ command=('dnsrecord_add', [zone1, ds], {'dsrecord': ds_rec}),
+ expected=errors.ValidationError(
+ name="dsrecord",
+ error=u'DS record requires to coexist with an NS record (RFC 4592 section 4.6, RFC 4035 section 2.4)'
+ ),
+ ),
+
+
+ dict(
+ desc='Add NS record to %r using dnsrecord_add' % (ds),
+ command=('dnsrecord_add', [zone1, ds],
+ {'nsrecord': zone1_ns}),
+ expected={
+ 'value': ds_dnsname,
+ 'summary': None,
+ 'result': {
+ 'objectclass': objectclasses.dnsrecord,
+ 'dn': ds_dn,
+ 'idnsname': [ds_dnsname],
+ 'nsrecord': [zone1_ns],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Add DS record to %r using dnsrecord_add' % (ds),
+ command=('dnsrecord_add', [zone1, ds],
+ {'dsrecord': ds_rec}),
+ expected={
+ 'value': ds_dnsname,
+ 'summary': None,
+ 'result': {
+ 'objectclass': objectclasses.dnsrecord,
+ 'dn': ds_dn,
+ 'idnsname': [ds_dnsname],
+ 'nsrecord': [zone1_ns],
+ 'dsrecord': [ds_rec],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Try to delete NS record (with DS record) %r using dnsrecord_del' % (ds),
+ command=('dnsrecord_del', [zone1, ds],
+ {'nsrecord': zone1_ns}),
+ expected=errors.ValidationError(
+ name="dsrecord",
+ error=u'DS record requires to coexist with an NS record (RFC 4592 section 4.6, RFC 4035 section 2.4)'
+ ),
+ ),
+
+
+ dict(
+ desc='Delete NS+DS record %r in zone %r' % (ds, zone1),
+ command=('dnsrecord_del', [zone1, ds], {'nsrecord': zone1_ns, 'dsrecord': ds_rec}),
+ expected={
+ 'value': [ds_dnsname],
+ 'summary': u'Deleted record "%s"' % ds,
+ 'result': {'failed': []},
+ },
+ ),
+
+
+ dict(
desc='Delete record %r in zone %r' % (dlv, zone1),
command=('dnsrecord_del', [zone1, dlv], {'del_all': True}),
expected={