SSIA
--
Petr Vobornik
From 66410a435d641a90da7bc0f525d5e73e3a5c549d Mon Sep 17 00:00:00 2001
From: Petr Vobornik <pvobo...@redhat.com>
Date: Thu, 24 Apr 2014 17:24:59 +0200
Subject: [PATCH] webui-ci: adjust id range tests to new validator

---
 ipatests/test_webui/task_range.py | 33 +++++++++++++++++++--------------
 ipatests/test_webui/test_range.py | 27 +++++++--------------------
 ipatests/test_webui/test_trust.py |  6 ++++--
 ipatests/test_webui/ui_driver.py  |  9 +++++++--
 4 files changed, 37 insertions(+), 38 deletions(-)

diff --git a/ipatests/test_webui/task_range.py b/ipatests/test_webui/task_range.py
index 4775078e7388078ccf4d6a59288388c3dd363ff5..3b9c84a96be00cbe556c04b7c29028c2b2f21d0c 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 534cd1cdd20435aebf6fa5832fac68cbf717bf31..663ff42cb7e2e383d45b37d077cf2a21f006a7f4 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 c0e851f322595399142a4a63f8774b660d8046b3..1e91767772a3a3d19bea76d31488748e7b7416ce 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 328f1b6991565a787b975d4867a84a453d4cd05d..7cfe21ad8985b04fcb296adccf0277a5f02833b9 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):
         """
-- 
1.9.0

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to