URL: https://github.com/freeipa/freeipa/pull/1923 Author: varunmylaraiah Title: #1923: Extend WebUI test_krbpolicy automation suite Action: opened
PR body: """ Extend WebUI test_krbpolicy suite with the following test cases test_verifying_button (verify button's action in various scenarios) test_negative_value (verify invalid values) test_verifying_measurement_unit https://pagure.io/freeipa/issue/7540 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/1923/head:pr1923 git checkout pr1923
From 770deab7bf8325c83880957d668860b535f89689 Mon Sep 17 00:00:00 2001 From: Varun Mylaraiah <mva...@redhat.com> Date: Mon, 14 May 2018 12:16:45 +0530 Subject: [PATCH 1/2] Temporary_commit: activate web_ui tests and ui_driver "field_validation" changes Signed-off-by: Varun Mylaraiah <mva...@redhat.com> --- .freeipa-pr-ci.yaml | 183 ++------------------------------------- ipatests/test_webui/ui_driver.py | 10 ++- 2 files changed, 16 insertions(+), 177 deletions(-) diff --git a/.freeipa-pr-ci.yaml b/.freeipa-pr-ci.yaml index 88d34d58fc..7de92aab11 100644 --- a/.freeipa-pr-ci.yaml +++ b/.freeipa-pr-ci.yaml @@ -3,6 +3,10 @@ topologies: name: build cpu: 2 memory: 3800 + ipaserver: &ipaserver + name: ipaserver + cpu: 1 + memory: 2400 master_1repl: &master_1repl name: master_1repl cpu: 4 @@ -27,183 +31,14 @@ jobs: timeout: 1800 topology: *build - fedora-27/simple_replication: + fedora-27/test_webui: requires: [fedora-27/build] priority: 50 job: - class: RunPytest + class: RunWebuiTests args: build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_simple_replication.py + test_suite: test_webui template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/caless: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_caless.py::TestServerReplicaCALessToCAFull - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/external_ca: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_external_ca.py::TestExternalCA test_integration/test_external_ca.py::TestSelfExternalSelf test_integration/test_external_ca.py::TestExternalCAInstall - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_topologies: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_topologies.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_sudo: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_sudo.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl_1client - - fedora-27/test_ipa_cli: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_ipa_cli.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_kerberos_flags: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_kerberos_flags.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl_1client - - fedora-27/test_http_kdc_proxy: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_http_kdc_proxy.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl_1client - - fedora-27/test_forced_client_enrolment: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_forced_client_reenrollment.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl_1client - - fedora-27/test_advise: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_advise.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_testconfig: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_testconfig.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_service_permissions: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_service_permissions.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_netgroup: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_netgroup.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_vault: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_vault.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl - - fedora-27/test_authconfig: - requires: [fedora-27/build] - priority: 50 - job: - class: RunPytest - args: - build_url: '{fedora-27/build_url}' - test_suite: test_integration/test_authselect.py - template: *ci-master-f27 - timeout: 3600 - topology: *master_1repl_1client - + timeout: 7200 + topology: *ipaserver diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py index 34d21ae35d..1febc3d367 100644 --- a/ipatests/test_webui/ui_driver.py +++ b/ipatests/test_webui/ui_driver.py @@ -2139,7 +2139,7 @@ def assert_action_list_action(self, action, visible=True, enabled=True, assert is_enabled == enabled, ('Invalid enabled state of action item %s. ' 'Expected: %s') % (action, str(visible)) - def assert_field_validation(self, expect_error, parent=None): + def assert_field_validation(self, expect_error, parent=None, field=None): """ Assert for error in field validation """ @@ -2147,14 +2147,18 @@ def assert_field_validation(self, expect_error, parent=None): if not parent: parent = self.get_form() + if field: + field_s = '.widget[name="{}"]'.format(field) + parent = self.find(field_s, By.CSS_SELECTOR, context=parent) + req_field_css = '.help-block[name="error_link"]' res = self.find(req_field_css, By.CSS_SELECTOR, context=parent) assert expect_error in res.text, \ 'Expected error: {} not found'.format(expect_error) - def assert_field_validation_required(self, parent=None): - self.assert_field_validation('Required field', parent) + def assert_field_validation_required(self, parent=None, field=None): + self.assert_field_validation('Required field', parent, field) def assert_notification(self, type='success', assert_text=None): """ From 550b18a19d1dbf057392a622ec8091a75a718cf9 Mon Sep 17 00:00:00 2001 From: Varun Mylaraiah <mva...@redhat.com> Date: Mon, 14 May 2018 12:54:57 +0530 Subject: [PATCH 2/2] Extend WebUI test_krbpolicy suite with the following test cases: test_verifying_button (verify button's action in various scenarios) test_negative_value (verify invalid values) test_verifying_measurement_unit https://pagure.io/freeipa/issue/7540 Signed-off-by: Varun Mylaraiah <mva...@redhat.com> --- ipatests/test_webui/test_krbtpolicy.py | 96 ++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/ipatests/test_webui/test_krbtpolicy.py b/ipatests/test_webui/test_krbtpolicy.py index 2bfb964827..d2d0c2622e 100644 --- a/ipatests/test_webui/test_krbtpolicy.py +++ b/ipatests/test_webui/test_krbtpolicy.py @@ -55,3 +55,99 @@ def test_mod(self): self.mod_record(ENTITY, DATA) self.mod_record(ENTITY, DATA2) + + @screenshot + def test_verifying_button(self): + """ + verifying Revert, Refresh and Undo button + """ + self.init_app() + self.navigate_to_entity(ENTITY) + + # verifying Revert, Refresh and Undo button for max renewable age + self.button_reset('krbmaxrenewableage', '444800') + + # verifying Revert, Refresh and Undo button for max ticket age + self.button_reset('krbmaxticketlife', '46400') + + def button_reset(self, field, value): + """ + testing "Revert", "Refresh" and "Undo" button + """ + # verifying undo button + self.fill_textbox(field, value) + facet = self.get_facet() + s = ".input-group button[name='undo']" + self._button_click(s, facet) + self.verify_btn_action(field, value) + self.wait_for_request(n=2) + + # verifying revert button + self.fill_textbox(field, value) + self.facet_button_click('revert') + self.verify_btn_action(field, value) + self.wait_for_request(n=2) + + # verifying refresh button + self.fill_textbox(field, value) + self.facet_button_click('refresh') + self.verify_btn_action(field, value) + self.wait_for_request(n=2) + + def verify_btn_action(self, field, mod_value, negative=True): + """ + comparing current value with modified value + """ + current_value = self.get_field_value(field, element="input") + if negative: + assert current_value != mod_value + else: + assert current_value == mod_value + + @screenshot + def test_negative_value(self): + """ + Negative test for Max renew + """ + self.init_app() + self.navigate_to_entity(ENTITY) + + # string used instead of integer + expected_error = 'Must be an integer' + value = 'nonInteger' + self.modify_policy(expected_error, value) + + # bigger than max value + expected_error = 'Maximum value is 2147483647' + value = '2147483649' + self.modify_policy(expected_error, value) + + # smaller than max value + expected_error = 'Minimum value is 1' + value = '-1' + self.modify_policy(expected_error, value) + + def modify_policy(self, expected_error, value): + """ + modifying kerberos policy values + """ + self.fill_textbox('krbmaxrenewableage', value) + self.wait_for_request() + self.assert_field_validation(expected_error) + self.facet_button_click('revert') + self.fill_textbox('krbmaxticketlife', value) + self.wait_for_request() + self.assert_field_validation(expected_error, field='krbmaxticketlife') + self.facet_button_click('revert') + + @screenshot + def test_verify_measurement_unit(self): + """ + verifying measurement unit for Max renew and Max life + """ + self.init_app() + self.navigate_to_entity(ENTITY) + label1 = self.get_text('label[name="krbmaxrenewableage"]') + label2 = self.get_text('label[name="krbmaxticketlife"]') + assert "Max renew (seconds)" in label1 + assert "Max life (seconds)" in label2
_______________________________________________ FreeIPA-devel mailing list -- freeipa-devel@lists.fedorahosted.org To unsubscribe send an email to freeipa-devel-le...@lists.fedorahosted.org