summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2014-04-24 17:24:59 +0200
committerPetr Vobornik <pvoborni@redhat.com>2014-05-05 17:50:53 +0200
commit7eff8ad7dc385070b600ddb2b2ba1f39835718b6 (patch)
tree58c60a303a78d4cbbbcc3d734008251663e153f9
parent5d78cdf80951748f5f954a69c41a2a2cb1b84812 (diff)
downloadfreeipa-7eff8ad7dc385070b600ddb2b2ba1f39835718b6.tar.gz
freeipa-7eff8ad7dc385070b600ddb2b2ba1f39835718b6.tar.xz
freeipa-7eff8ad7dc385070b600ddb2b2ba1f39835718b6.zip
webui-ci: adjust id range tests to new validator
Reviewed-By: Adam Misnyovszki <amisnyov@redhat.com>
-rw-r--r--ipatests/test_webui/task_range.py33
-rw-r--r--ipatests/test_webui/test_range.py27
-rw-r--r--ipatests/test_webui/test_trust.py6
-rw-r--r--ipatests/test_webui/ui_driver.py9
4 files changed, 37 insertions, 38 deletions
diff --git a/ipatests/test_webui/task_range.py b/ipatests/test_webui/task_range.py
index 4775078e7..3b9c84a96 100644
--- a/ipatests/test_webui/task_range.py
+++ b/ipatests/test_webui/task_range.py
@@ -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))
diff --git a/ipatests/test_webui/test_range.py b/ipatests/test_webui/test_range.py
index 534cd1cdd..663ff42cb 100644
--- a/ipatests/test_webui/test_range.py
+++ b/ipatests/test_webui/test_range.py
@@ -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)
diff --git a/ipatests/test_webui/test_trust.py b/ipatests/test_webui/test_trust.py
index c0e851f32..1e9176777 100644
--- a/ipatests/test_webui/test_trust.py
+++ b/ipatests/test_webui/test_trust.py
@@ -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)
diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py
index 328f1b699..7cfe21ad8 100644
--- a/ipatests/test_webui/ui_driver.py
+++ b/ipatests/test_webui/ui_driver.py
@@ -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):
"""