webui:tests: realm domain add with DNS check

Try adding and deleting with "Check DNS" (in html 'ok' button)

DNS check expects that the added domain will have DNS record:
    TXT _kerberos.$domain "$REALM"

When a new domain is added using dnszone-add it automatically adds
this TXT record and adds a realm domain. So in order to test without
external DNS we must get into state where realm domain is not added
(in order to add it) but DNS domain with the TXT record exists.

Reviewed-By: Petr Cech <pcech@redhat.com>
This commit is contained in:
Petr Vobornik
2018-02-16 18:12:48 +01:00
committed by Christian Heimes
parent d7d13bc950
commit d73d49f3f6

View File

@@ -23,6 +23,9 @@ Realm domains tests
from ipatests.test_webui.ui_driver import UI_driver
from ipatests.test_webui.ui_driver import screenshot
from ipatests.test_webui.data_dns import (
ZONE_ENTITY, ZONE_DATA, ZONE_PKEY, ZONE_DEFAULT_FACET
)
import pytest
ENTITY = 'realmdomains'
@@ -31,6 +34,12 @@ ENTITY = 'realmdomains'
@pytest.mark.tier1
class test_realmdomains(UI_driver):
def del_realm_domain(self, realmdomain, button):
self.del_multivalued('associateddomain', realmdomain)
self.facet_button_click('save')
self.dialog_button_click(button)
self.wait_for_request()
@screenshot
def test_read(self):
"""
@@ -39,15 +48,60 @@ class test_realmdomains(UI_driver):
self.init_app()
self.navigate_to_entity(ENTITY)
# add
# add with force - skipping DNS check
self.add_multivalued('associateddomain', 'itest.bar')
self.facet_button_click('save')
self.dialog_button_click('force')
self.wait_for_request()
# delete
self.del_multivalued('associateddomain', 'itest.bar')
self.del_realm_domain('itest.bar', 'force')
self.wait_for_request()
# Try adding and deleting with "Check DNS" (in html 'ok' button)
# DNS check expects that the added domain will have DNS record:
# TXT _kerberos.$domain "$REALM"
# When a new domain is added using dnszone-add it automatically adds
# this TXT record and adds a realm domain. So in order to test without
# external DNS we must get into state where realm domain is not added
# (in order to add it) but DNS domain with the TXT record
# exists.
# add DNS domain
self.navigate_to_entity(ZONE_ENTITY)
self.add_record(ZONE_ENTITY, ZONE_DATA)
realmdomain = ZONE_PKEY.strip('.')
realm = self.config.get('ipa_realm')
# remove the added domain from Realm Domain
self.navigate_to_entity(ENTITY)
self.del_realm_domain(realmdomain, 'ok')
# re-add _TXT kerberos.$domain "$REALM"
self.navigate_to_entity(ZONE_ENTITY)
self.navigate_to_record(ZONE_PKEY)
DNS_RECORD_ADD_DATA = {
'pkey': '_kerberos',
'add': [
('textbox', 'idnsname', '_kerberos'),
('selectbox', 'record_type', 'txtrecord'),
('textbox', 'txt_part_data', realm),
]
}
self.add_record(ZONE_ENTITY, DNS_RECORD_ADD_DATA,
facet=ZONE_DEFAULT_FACET, navigate=False)
# add Realm Domain and Check DNS
self.navigate_to_entity(ENTITY)
self.add_multivalued('associateddomain', realmdomain)
self.facet_button_click('save')
self.dialog_button_click('force')
self.wait_for_request()
self.dialog_button_click('ok')
self.wait_for_request()
# cleanup
self.del_realm_domain(realmdomain, 'ok')
self.navigate_to_entity(ZONE_ENTITY)
self.delete_record(ZONE_PKEY)