Web UI integration tests: ID range types

https://fedorahosted.org/freeipa/ticket/3834
This commit is contained in:
Petr Vobornik
2013-08-16 18:18:53 +02:00
parent 0584caf56a
commit 278c87cc62
4 changed files with 281 additions and 72 deletions

View File

@@ -18,68 +18,17 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
User tests
Range tests
"""
from ipatests.test_webui.ui_driver import UI_driver
import ipatests.test_webui.test_trust as trust_mod
from ipatests.test_webui.task_range import range_tasks
ENTITY = 'idrange'
PKEY = 'itest-range'
class test_range(UI_driver):
def get_shifts(self, idranges=None):
if not idranges:
result = self.execute_api_from_ui('idrange_find', [], {})
idranges = result['result']['result']
id_shift = 0
rid_shift = 0
for idrange in idranges:
size = int(idrange['ipaidrangesize'][0])
base_id = int(idrange['ipabaseid'][0])
id_end = base_id + size
rid_end = 0
if 'ipabaserid' in idrange:
base_rid = int(idrange['ipabaserid'][0])
rid_end = base_rid + size
if 'ipasecondarybaserid' in idrange:
secondary_base_rid = int(idrange['ipasecondarybaserid'][0])
rid_end = max(base_rid, secondary_base_rid) + size
if id_shift < id_end:
id_shift = id_end + 1000000
if rid_shift < rid_end:
rid_shift = rid_end + 1000000
self.id_shift = id_shift
self.rid_shift = rid_shift
self.sec_rid_shift = rid_shift + 1000
self.shift = 0
def get_data(self, pkey, size=50, shift=100):
self.shift += shift
data = {
'pkey': pkey,
'add': [
('textbox', 'cn', pkey),
('textbox', 'ipabaseid', str(self.id_shift + self.shift)),
('textbox', 'ipaidrangesize', str(size)),
('textbox', 'ipabaserid', str(self.rid_shift + self.shift)),
('textbox', 'ipasecondarybaserid', str(self.sec_rid_shift + self.shift)),
],
'mod': [
('textbox', 'ipaidrangesize', str(size + 1)),
],
}
return data
class test_range(range_tasks):
def test_crud(self):
"""
@@ -88,3 +37,66 @@ class test_range(UI_driver):
self.init_app()
self.get_shifts()
self.basic_crud(ENTITY, self.get_data(PKEY))
def test_types(self):
"""
Test range types
"""
self.init_app()
self.get_shifts()
pkey_local = 'itest-local'
pkey_ad = 'itest-ad'
pkey_posix = 'itest-ad-posix'
pkey_winsync = 'itest-ad-winsync'
pkey_trust = 'itest-ipa-trust'
column = 'iparangetype'
add = self.get_add_data(pkey_local)
data = self.get_data(pkey_local, add_data=add)
self.add_record(ENTITY, data)
self.assert_record_value('local domain range', pkey_local, column)
if self.has_trusts():
trust_tasks = trust_mod.trust_tasks()
trust_data = trust_tasks.get_data()
self.add_record(trust_mod.ENTITY, trust_data)
sid = self.get_sid()
self.navigate_to_entity(ENTITY)
self.facet_button_click('refresh')
self.wait_for_request(n=2)
add = self.get_add_data(pkey_ad, range_type='ipa-ad-trust', sid=sid)
data = self.get_data(pkey_ad, add_data=add)
self.add_record(ENTITY, data, navigate=False)
self.assert_record_value('Active Directory domain range', pkey_ad, column)
add = self.get_add_data(pkey_posix, range_type='ipa-ad-trust-posix', sid=sid)
data = self.get_data(pkey_posix, add_data=add)
self.add_record(ENTITY, data, navigate=False)
self.assert_record_value('Active Directory trust range with POSIX attributes', pkey_posix, column)
self.delete(trust_mod.ENTITY, [trust_data])
self.navigate_to_entity(ENTITY)
self.delete_record(pkey_ad)
self.delete_record(pkey_posix)
self.delete_record(trust_tasks.get_range_name())
add = self.get_add_data(pkey_winsync, range_type='ipa-ad-winsync')
data = self.get_data(pkey_winsync, add_data=add)
self.add_record(ENTITY, data, navigate=False)
self.assert_record_value('Active Directory winsync range', pkey_winsync, column)
add = self.get_add_data(pkey_trust, range_type='ipa-ipa-trust')
data = self.get_data(pkey_trust, add_data=add)
self.add_record(ENTITY, data, navigate=False)
self.assert_record_value('IPA trust range', pkey_trust, column)
self.delete_record(pkey_local)
self.delete_record(pkey_winsync)
self.delete_record(pkey_trust)