webui-ci: adjust id range tests to new validator

Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
This commit is contained in:
Petr Vobornik 2014-04-24 17:24:59 +02:00
parent 5d78cdf809
commit 7eff8ad7dc
4 changed files with 37 additions and 38 deletions

View File

@ -32,8 +32,8 @@ class range_tasks(UI_driver):
result = self.execute_api_from_ui('idrange_find', [], {})
idranges = result['result']['result']
id_shift = 0
rid_shift = 0
max_id = 0
max_rid = 0
for idrange in idranges:
size = int(idrange['ipaidrangesize'][0])
@ -50,16 +50,14 @@ class range_tasks(UI_driver):
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 max_id < id_end:
max_id = id_end + 1000000
if rid_shift < rid_end:
rid_shift = rid_end + 1000000
if max_rid < rid_end:
max_rid = rid_end + 1000000
self.id_shift = id_shift
self.rid_shift = rid_shift
self.sec_rid_shift = rid_shift + 1000
self.shift = 0
self.max_id = max_id
self.max_rid = max_rid
def get_sid(self):
result = self.execute_api_from_ui('trust_find', [], {})
@ -85,17 +83,24 @@ class range_tasks(UI_driver):
def get_add_data(self, pkey, range_type='ipa-local', size=50, shift=100, sid=None):
self.shift += shift
base_id = self.max_id + shift
self.max_id = base_id + size
base_rid = self.max_rid + shift
self.max_rid = base_rid + size
add = [
('textbox', 'cn', pkey),
('textbox', 'ipabaseid', str(self.id_shift + self.shift)),
('textbox', 'ipabaseid', str(base_id)),
('textbox', 'ipaidrangesize', str(size)),
('textbox', 'ipabaserid', str(self.rid_shift + self.shift)),
('textbox', 'ipabaserid', str(base_rid)),
('radio', 'iparangetype', range_type),
]
if not sid:
add.append(('textbox', 'ipasecondarybaserid', str(self.sec_rid_shift + self.shift)))
base_rid = self.max_rid + shift
self.max_rid = base_rid + size
add.append(('textbox', 'ipasecondarybaserid', str(base_rid)))
if sid:
add.append(('textbox', 'ipanttrusteddomainsid', sid))

View File

@ -41,6 +41,13 @@ class test_range(range_tasks):
def test_types(self):
"""
Test range types
Only 'local' and 'ipa-ad-trust' types are tested since range validation
made quite hard to test the other types:
- 'ipa-ad-trust-posix' can be tested only with subdomains.
- 'ipa-ad-winsync' and 'ipa-ipa-trust' and are not supported yet
https://fedorahosted.org/freeipa/ticket/4323
"""
self.init_app()
self.get_shifts()
@ -73,28 +80,8 @@ class test_range(range_tasks):
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)

View File

@ -120,8 +120,9 @@ class test_trust(trust_tasks):
r_tasks = range_tasks(self.driver, self.config)
r_tasks.get_shifts()
base_id = r_tasks.id_shift + 100
range_size = 50
range_add = r_tasks.get_add_data('')
base_id = range_add[2][2]
range_size = range_add[3][2]
range_pkey = self.get_range_name()
column = 'iparangetype'
@ -135,6 +136,7 @@ class test_trust(trust_tasks):
self.assert_record_value('Active Directory domain range', range_pkey, column)
self.delete_record(range_pkey)
self.request_timeout = 60
add = self.get_add_data('ipa-ad-trust-posix', base_id, range_size)
data = self.get_data(add_data=add)
self.add_record(ENTITY, data, delete=True)

View File

@ -31,6 +31,7 @@ import os
try:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import InvalidElementStateException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
@ -636,8 +637,12 @@ class UI_driver(object):
if not parent:
parent = self.get_form()
tb = self.find(selector, By.CSS_SELECTOR, parent, strict=True)
tb.clear()
tb.send_keys(value)
try:
tb.clear()
tb.send_keys(value)
except InvalidElementStateException as e:
msg = "Invalid Element State, el: %s, value: %s, error: %s" % (selector, value, e)
assert False, msg
def fill_input(self, name, value, input_type="text", parent=None):
"""