From d7d8722ce27e308defb6764d8d76f85ce7d63927 Mon Sep 17 00:00:00 2001 From: "Lovett, Trevor" Date: Tue, 3 Mar 2020 14:04:39 -0600 Subject: [VVP] Removing outdated test-engine code Issue-ID: VVP-381 Signed-off-by: Lovett, Trevor Change-Id: I8622794a24deb83e14334e3454194914b835d37d --- tests/__init__.py | 38 -- tests/apiTests/__init__.py | 38 -- tests/apiTests/test_api_base.py | 114 ---- tests/apiTests/test_negative_requests.py | 320 ---------- tests/signalTests/__init__.py | 38 -- tests/signalTests/test_checklist_signal.py | 68 --- tests/signalTests/test_git_signal.py | 381 ------------ tests/signalTests/test_signal_base.py | 116 ---- tests/uiTests/__init__.py | 38 -- tests/uiTests/geckodriver.log | 392 ------------- tests/uiTests/test_admin_dropdown.py | 197 ------- tests/uiTests/test_admin_section.py | 81 --- tests/uiTests/test_bucket_e2e.py | 150 ----- tests/uiTests/test_bucket_url.py | 75 --- tests/uiTests/test_checklist_validations.py | 333 ----------- .../uiTests/test_cms_news_and_announcementsion.py | 174 ------ tests/uiTests/test_dashboard_feature.py | 164 ------ tests/uiTests/test_detailed_view.py | 338 ----------- tests/uiTests/test_edit_checklist_template.py | 110 ---- tests/uiTests/test_export_excel.py | 73 --- tests/uiTests/test_feedback_modal.py | 67 --- .../uiTests/test_invitations_and_throttle_logic.py | 194 ------ tests/uiTests/test_left_nav_panel.py | 219 ------- tests/uiTests/test_login_with_new_user.py | 650 --------------------- tests/uiTests/test_next_step.py | 262 --------- tests/uiTests/test_notification_for_new_user.py | 109 ---- tests/uiTests/test_overview.py | 69 --- tests/uiTests/test_portal_homepage.py | 56 -- tests/uiTests/test_progress_bar.py | 95 --- tests/uiTests/test_rados_perms.py | 113 ---- tests/uiTests/test_remove_user_from_eng.py | 154 ----- tests/uiTests/test_reset_password.py | 85 --- tests/uiTests/test_rgwa_credentials.py | 80 --- tests/uiTests/test_sanity.py | 194 ------ tests/uiTests/test_set_stage.py | 160 ----- tests/uiTests/test_ssh_key.py | 97 --- tests/uiTests/test_ui_base.py | 167 ------ tests/uiTests/test_user_profile_settings.py | 78 --- tests/uiTests/test_validate_signup.py | 113 ---- 39 files changed, 6200 deletions(-) delete mode 100644 tests/__init__.py delete mode 100644 tests/apiTests/__init__.py delete mode 100644 tests/apiTests/test_api_base.py delete mode 100644 tests/apiTests/test_negative_requests.py delete mode 100644 tests/signalTests/__init__.py delete mode 100644 tests/signalTests/test_checklist_signal.py delete mode 100644 tests/signalTests/test_git_signal.py delete mode 100644 tests/signalTests/test_signal_base.py delete mode 100644 tests/uiTests/__init__.py delete mode 100644 tests/uiTests/geckodriver.log delete mode 100644 tests/uiTests/test_admin_dropdown.py delete mode 100644 tests/uiTests/test_admin_section.py delete mode 100644 tests/uiTests/test_bucket_e2e.py delete mode 100644 tests/uiTests/test_bucket_url.py delete mode 100644 tests/uiTests/test_checklist_validations.py delete mode 100644 tests/uiTests/test_cms_news_and_announcementsion.py delete mode 100644 tests/uiTests/test_dashboard_feature.py delete mode 100644 tests/uiTests/test_detailed_view.py delete mode 100644 tests/uiTests/test_edit_checklist_template.py delete mode 100644 tests/uiTests/test_export_excel.py delete mode 100644 tests/uiTests/test_feedback_modal.py delete mode 100644 tests/uiTests/test_invitations_and_throttle_logic.py delete mode 100644 tests/uiTests/test_left_nav_panel.py delete mode 100644 tests/uiTests/test_login_with_new_user.py delete mode 100644 tests/uiTests/test_next_step.py delete mode 100644 tests/uiTests/test_notification_for_new_user.py delete mode 100644 tests/uiTests/test_overview.py delete mode 100644 tests/uiTests/test_portal_homepage.py delete mode 100644 tests/uiTests/test_progress_bar.py delete mode 100644 tests/uiTests/test_rados_perms.py delete mode 100644 tests/uiTests/test_remove_user_from_eng.py delete mode 100644 tests/uiTests/test_reset_password.py delete mode 100644 tests/uiTests/test_rgwa_credentials.py delete mode 100644 tests/uiTests/test_sanity.py delete mode 100644 tests/uiTests/test_set_stage.py delete mode 100644 tests/uiTests/test_ssh_key.py delete mode 100644 tests/uiTests/test_ui_base.py delete mode 100644 tests/uiTests/test_user_profile_settings.py delete mode 100644 tests/uiTests/test_validate_signup.py (limited to 'tests') diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index 32b601a..0000000 --- a/tests/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. diff --git a/tests/apiTests/__init__.py b/tests/apiTests/__init__.py deleted file mode 100644 index 32b601a..0000000 --- a/tests/apiTests/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. diff --git a/tests/apiTests/test_api_base.py b/tests/apiTests/test_api_base.py deleted file mode 100644 index 5fad138..0000000 --- a/tests/apiTests/test_api_base.py +++ /dev/null @@ -1,114 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -import logging -import sys -from timeit import default_timer as timer - -from django.test import TestCase -import requests -from requests.packages.urllib3.exceptions import InsecureRequestWarning - -from iceci.decorator.logFuncEntry import logFuncEntry -from services.database.db_general import DBGeneral -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.session import session - - -requests.packages.urllib3.disable_warnings(InsecureRequestWarning) - - -logger = LoggingServiceFactory.get_logger() -stream_handler = logging.StreamHandler(sys.stdout) - - -class TestApiBase(TestCase, Helper): - - @logFuncEntry - def setUp(self): - logger.addHandler(stream_handler) - self.fullClassName = __name__ - self.className = self.__class__.__name__ - logger.debug("---------------------- TestCase " + - self.className + " ----------------------") - - self.startTime = timer() - self.funcName = self._testMethodName - self.testName = self.funcName - - @logFuncEntry - def tearDown(self): - self.endTime = timer() - self.testDuration = str(self.endTime - self.startTime) - self.results() - logger.debug("---------------------- TestCase " + - self.className + " ----------------------\n\n") - try: - logging.getLogger().info("BB") - finally: - logger.removeHandler(stream_handler) - session.errorList = "" - session.errorCounter = 0 - - @logFuncEntry - def results(self): - params = { - "testType": "E2E Test", - "testFeature": self.className, - "testResult": "PASS", - "testName": self.funcName, - "duration": self.testDuration} - if (session.errorCounter == 0): - DBGeneral.insert_results( - params["testType"], - params["testFeature"], - params["testResult"], - params["testName"], - params['duration']) - else: - params["testResult"] = "FAIL" # Mark test as fail. - # Add the errors to notes column in table. - params["notes"] = session.errorList - DBGeneral.insert_results( - params["testType"], - params["testFeature"], - params["testResult"], - params["testName"], - params['duration'], - params["notes"]) diff --git a/tests/apiTests/test_negative_requests.py b/tests/apiTests/test_negative_requests.py deleted file mode 100644 index 9efb69e..0000000 --- a/tests/apiTests/test_negative_requests.py +++ /dev/null @@ -1,320 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from django.conf import settings - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API -from tests.apiTests.test_api_base import TestApiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestNegativeRequests(TestApiBase, Helper): - - @exception() - def test_negative_invite_member(self): - logger.debug( - "This negative test will try to invite team " + - "member to an engagement using other auth token.") - user_a = API.VirtualFunction.create_engagement() - user_b = API.VirtualFunction.create_engagement() - user_a['session_token'] = user_b['session_token'] - try: - logger.debug( - "About to invite team member to the engagement of user " + - user_a['full_name']) - API.VirtualFunction.invite_team_member(user_a) - raise Exception( - user_a['full_name'] + - " has invited user using other auth token.") - except BaseException: - logger.debug( - "Success! Test failed to invite user using other auth token.") - - @exception() - def test_negative_add_contact(self): - logger.debug( - "This negative test will try to add contact to " + - "an engagement using other auth token.") - user_a = API.VirtualFunction.create_engagement() - user_b = API.VirtualFunction.create_engagement() - user_a['session_token'] = user_b['session_token'] - try: - logger.debug( - "About to invite contact to the engagement of user " + - user_a['full_name']) - API.VirtualFunction.add_contact(user_a) - raise Exception( - user_a['full_name'] + - " has invited contact user using other auth token.") - except BaseException: - logger.debug( - "Success! Test failed to invite contact " + - "user using other auth token.") - - @exception() - def test_negative_add_next_step(self): - logger.debug( - "This negative test will try to add a next step to engagement " + - "using PR / standard user / admin_ro auth token.") - user_content = API.VirtualFunction.create_engagement() - users = [user_content['email'], user_content[ - 'pr_email'], Constants.Users.AdminRO.EMAIL] - for user in users: - token = "token " + API.User.login_user(user) - user_content['session_token'] = token - try: - logger.debug( - "About to add a next step to VF " + - user_content['vfName'] + - " using " + - user + - " token.") - API.VirtualFunction.add_next_step(user_content) - raise Exception( - "Next step was added to VF " + - user_content['vfName'] + - " using " + - user + - " token.") - except BaseException: - logger.debug( - "Success! Test failed to add a new next step to the " + - "engagement using other auth token.") - - @exception() - def test_negative_edit_next_step(self): - logger.debug( - "This negative test will try to edit a next step using PR / " + - "standard user / admin_ro auth token.") - user_content = API.VirtualFunction.create_engagement() - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - ns_uuid = API.VirtualFunction.add_next_step(user_content) - users = [user_content['email'], user_content[ - 'pr_email'], Constants.Users.AdminRO.EMAIL] - for user in users: - token = "token " + API.User.login_user(user) - user_content['session_token'] = token - try: - logger.debug( - "About to edit a next step (ns uuid: " + - ns_uuid + - ") using " + - user + - " token.") - API.VirtualFunction.edit_next_step(user_content, ns_uuid) - raise Exception( - "Next step was edited using " + user + " token.") - except BaseException: - logger.debug( - "Success! Test failed to edit a next step using " + - "other auth token.") - - @exception() - def test_negative_create_checklist(self): - user_content = API.VirtualFunction.create_engagement() - logger.debug( - "This negative test will try to create a checklist " + - "using PR / standard user / admin_ro auth token.") - users = [user_content['email'], user_content[ - 'pr_email'], Constants.Users.AdminRO.EMAIL] - for user in users: - token = "token " + API.User.login_user(user) - user_content['session_token'] = token - try: - logger.debug( - "About to create checklist for VF " + - user_content['vfName']) - API.Checklist.create_checklist(user_content) - raise Exception( - "Checklist was created using " + user + " token.") - except BaseException: - logger.debug( - "Success! Test failed to create checklist using other " + - "auth token.") - - @exception() - def test_negative_update_checklist(self): - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - logger.debug( - "Create checklist with engagement lead (next: try to edit " + - "checklist with PR and standard user)") - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - cl_content = API.Checklist.create_checklist(user_content) - logger.debug( - "This negative test will try to create a checklist using PR / " + - "standard user / admin_ro auth token.") - users = [user_content['email'], user_content[ - 'pr_email'], Constants.Users.AdminRO.EMAIL] - for user in users: - token = "token " + API.User.login_user(user) - user_content['session_token'] = token - try: - logger.debug( - "About to update checklist for VF " + - user_content['vfName']) - API.Checklist.update_checklist( - user_content, cl_content['uuid']) - raise Exception( - "Checklist was created using " + user + " token.") - except BaseException: - logger.debug( - "Success! Test failed to create checklist using other " + - "auth token.") - - @exception() - def test_negative_set_checklist_state(self): - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - logger.debug( - "Create checklist with engagement lead (next: try to change " + - "checklist state with PR, standard user and admin_ro)") - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - cl_content = API.Checklist.create_checklist(user_content) - logger.debug( - "This negative test will try to change checklist state using " + - "PR / standard user / admin_ro auth token.") - users = [user_content['email'], user_content[ - 'pr_email'], Constants.Users.AdminRO.EMAIL] - for user in users: - try: - logger.debug( - "About to change checklist state for VF " + - user_content['vfName']) - API.Checklist.jump_state(cl_content['uuid'], user) - raise Exception( - "Checklist state was changed using " + user + " token.") - except BaseException: - logger.debug( - "Success! Test failed to change checklist state using " + - "other auth token.") - - @exception() - def test_add_checklist_audit_log(self): - user_content = API.VirtualFunction.create_engagement() - logger.debug( - "Create checklist with engagement lead (next: try to add audit " + - "log to checklist with standard user and admin_ro)") - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - cl_content = API.Checklist.create_checklist(user_content, files=[]) - logger.debug( - "This negative test will try to add audit log to checklist " + - "using standard user / admin_ro auth token.") - users = [user_content['email'], Constants.Users.AdminRO.EMAIL] - for user in users: - token = "token " + API.User.login_user(user) - user_content['session_token'] = token - try: - logger.debug( - "About to add audit log to checklist uuid " + - cl_content['uuid']) - API.Checklist.add_checklist_audit_log( - user_content, cl_content['uuid']) - raise Exception( - "Audit log was added to checklist using " + - user + - " token.") - except BaseException: - logger.debug( - "Success! Test failed to add audit log to checklist " + - "using other auth token.") - - @exception() - def test_add_checklist_next_step(self): - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - logger.debug( - "Create checklist with engagement lead (next: try to add " + - "checklist next step with PR, standard user and admin_ro)") - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - cl_content = API.Checklist.create_checklist(user_content) - logger.debug( - "This negative test will try to add checklist next step using " + - "PR / standard user / admin_ro auth token.") - users = [user_content['email'], user_content[ - 'pr_email'], Constants.Users.AdminRO.EMAIL] - for user in users: - token = "token " + API.User.login_user(user) - user_content['session_token'] = token - try: - logger.debug( - "About to add next step to checklist uuid " + - cl_content['uuid']) - API.Checklist.add_checklist_next_step( - user_content, cl_content['uuid']) - raise Exception( - "Next step was added to checklist using " + - user + - " token.") - except BaseException: - logger.debug( - "Success! Test failed to add next steps to checklist " + - "using other auth token.") - - @exception() - def test_negative_checklist_files(self): - # Can't run this test locally since locally we have files by default. - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: # Test starts here # - user_content = API.VirtualFunction.create_engagement() - logger.debug( - "Trying to create checklist with associated files when " + - "git repo is empty") - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - try: - API.Checklist.create_checklist(user_content) - raise Exception( - "Checklist was created with associated files while " + - "git repo is empty.") - except BaseException: - logger.debug( - "Success! Test failed to create checklist with " + - "associated files while git repo is empty.") diff --git a/tests/signalTests/__init__.py b/tests/signalTests/__init__.py deleted file mode 100644 index 32b601a..0000000 --- a/tests/signalTests/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. diff --git a/tests/signalTests/test_checklist_signal.py b/tests/signalTests/test_checklist_signal.py deleted file mode 100644 index 0e84140..0000000 --- a/tests/signalTests/test_checklist_signal.py +++ /dev/null @@ -1,68 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. - - -from django.conf import settings - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, DB -from tests.signalTests.test_signal_base import TestSignalBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestChecklistSignal(TestSignalBase): - - @exception() - def test_archive_checklist_after_editing_files(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - token = "token " + API.User.login_user(user_content['el_email']) - user_content['session_token'] = token - cl_content = API.Checklist.create_checklist(user_content) - API.GitLab.git_push_commit(user_content) - DB.Checklist.state_changed( - "uuid", - cl_content['uuid'], - Constants.ChecklistStates.Archive.TEXT) diff --git a/tests/signalTests/test_git_signal.py b/tests/signalTests/test_git_signal.py deleted file mode 100644 index ada7db2..0000000 --- a/tests/signalTests/test_git_signal.py +++ /dev/null @@ -1,381 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -''' -Created on 16 Nov 2016 - -''' -from django.conf import settings -from iceci.decorator.exception_decor import exception -from services.api.api_virtual_function import APIVirtualFunction -from services.constants import Constants, ServiceProvider -from services.logging_service import LoggingServiceFactory -from services.types import API -from tests.signalTests.test_signal_base import TestSignalBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestGitSignal(TestSignalBase): - - @exception() - def test_create_eng(self): - - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - API.GitLab.get_git_project(path_with_namespace) - if not API.GitLab.validate_git_project_members( - path_with_namespace, user_content['el_email']): - logger.error("Couldn't find user in GitLab response.") - raise - logger.debug( - "Project was created successfully on GitLab. ELs included") - try: - job_name = user_content[ - 'vfName'] + "_" + user_content['engagement_manual_id'] - API.Jenkins.get_jenkins_job(job_name) - except Exception as e: - logger.error( - "_-_-_-_- Unexpected error in test_create_eng: " + str(e)) - raise Exception("Job wasnt created on APIJenkins." + str(e)) - - @exception() - def test_update_account(self): - - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - sshKey = API.User.update_account(user_content) - git_user = API.GitLab.get_git_user(user_content['email']) - git_user_pub_key = API.GitLab.get_git_user_ssh_key(git_user['id']) - if sshKey != git_user_pub_key: - logger.error( - "The SSH Key received does not " + - "equal to the one provided! The key from GitLab:\n" + - git_user_pub_key) - raise - logger.debug( - "SSH Key for user " + - user_content['full_name'] + - " added to GitLab.") - - @exception() - def test_set_ssh(self): - - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - sshKey = API.User.set_ssh(user_content) - git_user = API.GitLab.get_git_user(user_content['email']) - git_user_pub_key = API.GitLab.get_git_user_ssh_key(git_user['id']) - if sshKey != git_user_pub_key: - logger.error( - "The SSH Key received does not equal" + - " to the one provided! The key from GitLab:\n" + - git_user_pub_key) - raise - logger.debug( - "SSH Key for user " + - user_content['full_name'] + - " added to GitLab.") - - @exception() - def test_invite_member(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - invited_email, invite_token,\ - invite_url = API.VirtualFunction.invite_team_member( - user_content) - second_user = API.User.signup_invited_user( - user_content[ - 'vendor'], invited_email, invite_token, invite_url, - user_content, activate=True) - APIVirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - if not API.GitLab.validate_git_project_members( - path_with_namespace, user_content['email']): - raise Exception( - "Couldn't find the inviter user (%s) in GitLab." % - user_content['email']) - if not API.GitLab.validate_git_project_members( - path_with_namespace, second_user['email']): - raise Exception( - "Couldn't find the inviter user (%s) in GitLab." % - second_user['email']) - logger.debug( - "Inviter and invited users " + - "were created successfully on GitLab!") - - @exception() - def test_add_contact(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - APIVirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - API.GitLab.get_git_project(path_with_namespace) - if not API.GitLab.validate_git_project_members( - path_with_namespace, user_content['email']): - raise Exception( - "Couldn't find the inviter user (%s) in GitLab." % - user_content['email']) - second_user_email, invite_token, \ - invite_url = API.VirtualFunction.add_contact( - user_content) - second_user = API.User.signup_invited_user( - ServiceProvider.MainServiceProvider, - second_user_email, - invite_token, - invite_url, - user_content, - "true", - True) - if API.GitLab.validate_git_project_members( - path_with_namespace, second_user_email): - logger.debug( - "Invited contact user " + - second_user['full_name'] + - " found in GitLab.") - else: - raise Exception("Couldn't find the invited user in GitLab.") - logger.debug( - "Inviter and invited users were " + - "created successfully on GitLab!") - - @exception() - def test_join_of_staff_users_to_new_gitlab_repo(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - eng_team_users_emails = [ - user_content['el_email'], - user_content['pr_email'], - Constants.Users.Admin.EMAIL] - API.GitLab.are_all_list_users_registered_as_project_members( - eng_team_users_emails, path_with_namespace) - logger.debug("Staff users were added " + - "successfully to GitLab repo!") - - @exception() - def test_join_of_stn_users_to_new_rep_after_active(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - # invite 2 new users in order to join standard users in the eng - # team - invited_email_address, invite_token, \ - invite_url = API.VirtualFunction.invite_team_member( - user_content) - invited_email_address = API.User.signup_invited_user( - user_content['vendor'], - invited_email_address, - invite_token, - invite_url, - user_content) - - second_invited_email, second_invite_token, \ - second_invite_url = API.VirtualFunction.invite_team_member( - user_content) - second_invited_email = API.User.signup_invited_user( - user_content['vendor'], - second_invited_email, - second_invite_token, - second_invite_url, - user_content) - - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - eng_team_users_emails = [ - invited_email_address['email'], - second_invited_email['email'], - user_content['email'], - user_content['el_email'], - user_content['pr_email'], - Constants.Users.Admin.EMAIL] - - API.GitLab.are_all_list_users_registered_as_project_members( - eng_team_users_emails, path_with_namespace) - logger.debug( - "Staff, Inviter and invited users were " + - "added successfully to GitLab repo!") - - @exception() - def test_rem_users_from_repo_after_active_and_validated(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - # invite 2 new users in order to join standard users in the eng - # team - invited_email_address, invite_token, invite_url\ - = API.VirtualFunction.invite_team_member(user_content) - invited_email_address = API.User.signup_invited_user( - user_content['vendor'], - invited_email_address, - invite_token, - invite_url, - user_content) - - second_invited_email, second_invite_token, \ - second_invite_url = API.VirtualFunction.invite_team_member( - user_content) - second_invited_email = API.User.signup_invited_user( - user_content['vendor'], - second_invited_email, - second_invite_token, - second_invite_url, - user_content) - - # change eng stage in order to include all standard users in the - # eng git lab repo - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.VALIDATED) - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - - # check that all standard users, staff users and admin are in the - # git lab repo - API.GitLab.get_git_project(path_with_namespace) - eng_team_users_emails = [ - user_content['el_email'], - user_content['pr_email'], - Constants.Users.Admin.EMAIL] - should_not_be_in_repo_users_list = [ - invited_email_address['email'], user_content['email']] - for email in eng_team_users_emails: - if not API.GitLab.validate_git_project_members( - path_with_namespace, email): - if email not in should_not_be_in_repo_users_list: - raise Exception( - "Couldn't find the invited users: " + email + - " in GitLab.") - - logger.debug( - "Invited user: " + - email + - " and" + - second_invited_email['full_name'] + - " found in GitLab.") - logger.debug( - "Inviter and invited users were created " + - "successfully on GitLab!") - - @exception() - def test_rem_users_from_repo_after_completed(self): - if settings.DATABASE_TYPE == 'local': - logger.debug("Local environment, skipping test...") - else: - user_content = API.VirtualFunction.create_engagement() - # invite 2 new users in order to join standard users in the eng - # team - invited_email, invite_token, \ - invite_url = API.VirtualFunction.invite_team_member( - user_content) - invited_email = API.User.signup_invited_user( - user_content['vendor'], invited_email, invite_token, - invite_url, user_content) - - second_invited_email, second_invite_token, \ - second_invite_url = API.VirtualFunction.invite_team_member( - user_content) - second_invited_email = API.User.signup_invited_user( - user_content['vendor'], - second_invited_email, - second_invite_token, - second_invite_url, - user_content) - - # change eng stage in order to include all standard users in the - # eng git lab repo - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.VALIDATED) - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.COMPLETED) - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - - # check that all standard users, staff users and admin are in the - # git lab repo - API.GitLab.get_git_project(path_with_namespace) - eng_team_users_emails = [ - user_content['el_email'], - user_content['pr_email'], - Constants.Users.Admin.EMAIL] - should_not_be_in_repo_users_list = [ - invited_email['email'], user_content['email']] - for email in eng_team_users_emails: - if not API.GitLab.validate_git_project_members( - path_with_namespace, email): - if email not in should_not_be_in_repo_users_list: - raise Exception( - "Couldn't find the user: " + - email + " in GitLab.") - - logger.debug( - "Invited user: " + - email + - " and" + - second_invited_email['full_name'] + - " found in GitLab.") - logger.debug( - "Inviter and invited users were created " + - "successfully on GitLab!") diff --git a/tests/signalTests/test_signal_base.py b/tests/signalTests/test_signal_base.py deleted file mode 100644 index 841a855..0000000 --- a/tests/signalTests/test_signal_base.py +++ /dev/null @@ -1,116 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -''' -Created on 15 Nov 2016 - -@author: tomerc -''' -import sys -from timeit import default_timer as timer -import unittest -import logging -import requests -from requests.packages.urllib3.exceptions import InsecureRequestWarning - -from iceci.decorator.logFuncEntry import logFuncEntry -from services.database.db_general import DBGeneral -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.session import session - - -requests.packages.urllib3.disable_warnings(InsecureRequestWarning) - - -logger = LoggingServiceFactory.get_logger() -stream_handler = logging.StreamHandler(sys.stdout) - - -class TestSignalBase(unittest.TestCase, Helper): - - def setUp(self): - logger.addHandler(stream_handler) - self.fullClassName = __name__ - self.className = self.__class__.__name__ - logger.debug("---------------------- TestCase " + - self.className + " ----------------------") - - self.startTime = timer() - self.funcName = self._testMethodName - self.testName = self.funcName - - def tearDown(self): - self.endTime = timer() - self.testDuration = str(self.endTime - self.startTime) - self.results() - logger.debug("---------------------- TestCase " + - self.className + " ----------------------\n\n") - try: - logging.getLogger().info("BB") - finally: - logger.removeHandler(stream_handler) - session.errorList = "" - session.errorCounter = 0 - - @logFuncEntry - def results(self): - params = { - "testType": "E2E Test", - "testFeature": self.className, - "testResult": "PASS", - "testName": self.funcName, - "duration": self.testDuration} - if (session.errorCounter == 0): - DBGeneral.insert_results( - params["testType"], - params["testFeature"], - params["testResult"], - params["testName"], - params['duration']) - else: - params["testResult"] = "FAIL" # Mark test as fail. - # Add the errors to notes column in table. - params["notes"] = session.errorList - DBGeneral.insert_results( - params["testType"], - params["testFeature"], - params["testResult"], - params["testName"], - params['duration'], - params["notes"]) diff --git a/tests/uiTests/__init__.py b/tests/uiTests/__init__.py deleted file mode 100644 index 32b601a..0000000 --- a/tests/uiTests/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. diff --git a/tests/uiTests/geckodriver.log b/tests/uiTests/geckodriver.log deleted file mode 100644 index bbbd105..0000000 --- a/tests/uiTests/geckodriver.log +++ /dev/null @@ -1,392 +0,0 @@ -1499152020601 geckodriver INFO Listening on 127.0.0.1:56804 -1499152021597 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499152023634 Marionette INFO Listening on port 56817 -1499152023758 Marionette WARN TLS certificate errors will be ignored for this session -1499152023950 Marionette DEBUG loaded listener.js -1499152024007 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152024010 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152024010 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152024014 Marionette DEBUG Received DOM event "DOMContentLoaded" for "about:blank" -1499152024015 Marionette DEBUG Received DOM event "pageshow" for "about:blank" -2017-07-04 02:07:04.043 plugin-container[13150:396681] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 02:07:04.048 plugin-container[13150:396681] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9f03, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499152024055 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152024066 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152024066 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152024689 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152024752 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152028171 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152030426 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152031027 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/admin" -1499152032461 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/admin/admin/checklist-template" -1499152033280 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152034836 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152035163 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152035991 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152036175 geckodriver INFO Listening on 127.0.0.1:57055 -1499152037160 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499152038852 Marionette INFO Listening on port 57069 -1499152038971 Marionette WARN TLS certificate errors will be ignored for this session -1499152039156 Marionette DEBUG loaded listener.js -1499152039183 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152039208 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152039208 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152039213 Marionette DEBUG Received DOM event "DOMContentLoaded" for "about:blank" -1499152039215 Marionette DEBUG Received DOM event "pageshow" for "about:blank" -2017-07-04 02:07:19.245 plugin-container[13266:398090] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c37, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 02:07:19.250 plugin-container[13266:398090] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9f03, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499152039258 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152039265 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152039265 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152039925 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152039990 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152043357 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152045536 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152046138 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/admin" -1499152047577 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/admin/admin/checklist-template" -1499152047897 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152049548 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152050325 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152050484 geckodriver INFO Listening on 127.0.0.1:57252 -1499152051476 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499152053142 Marionette INFO Listening on port 57265 -1499152053262 Marionette WARN TLS certificate errors will be ignored for this session -1499152053485 Marionette DEBUG loaded listener.js -1499152053532 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152053550 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152053551 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152053556 Marionette DEBUG Received DOM event "DOMContentLoaded" for "about:blank" -1499152053559 Marionette DEBUG Received DOM event "pageshow" for "about:blank" -2017-07-04 02:07:33.596 plugin-container[13295:399183] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 02:07:33.597 plugin-container[13295:399183] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xa003, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499152053611 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152053619 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152053619 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152054212 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152054272 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152077178 geckodriver INFO Listening on 127.0.0.1:57415 -1499152078176 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499152079886 Marionette INFO Listening on port 57424 -1499152080004 Marionette WARN TLS certificate errors will be ignored for this session -1499152080192 Marionette DEBUG loaded listener.js -2017-07-04 02:08:00.253 plugin-container[13340:400268] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 02:08:00.254 plugin-container[13340:400268] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9f03, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499152080885 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152080888 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152080889 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152080893 Marionette DEBUG Received DOM event "DOMContentLoaded" for "about:blank" -1499152080894 Marionette DEBUG Received DOM event "pageshow" for "about:blank" -1499152080913 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499152080921 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499152080922 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499152081514 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152081569 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152082003 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152082008 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152082008 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152082015 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152082017 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152082030 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152082034 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152082034 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152082617 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152082655 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152086054 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152090313 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152092345 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152093177 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152093483 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152094244 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152155116 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155119 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155120 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155126 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155127 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155145 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155156 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155156 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152155709 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152155739 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152155754 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152155758 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152155758 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152155791 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152155793 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152155799 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152155810 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152155811 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152156412 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152156436 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152159358 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152163542 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152165477 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152166834 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152167465 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167468 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167469 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167479 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167481 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167489 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167495 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152167496 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152168065 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152168097 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152168113 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152168115 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152168115 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152168134 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152168137 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152168163 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152168168 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152168168 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152168754 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152168817 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152171740 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152175833 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152177782 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152179164 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152180476 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152181234 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152182398 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182401 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182405 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182431 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182433 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182440 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182444 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152182444 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152183098 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152183129 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152183136 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152183138 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152183138 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152183157 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152183158 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152183167 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152183173 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152183173 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152183739 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152183775 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152186659 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152190504 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152192478 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152193839 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152195145 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152195905 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152197079 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197082 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197084 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197091 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197093 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197104 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197111 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197111 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152197649 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152197684 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152197691 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152197693 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152197693 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152197713 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152197714 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152197725 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499152197731 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499152197731 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499152198263 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499152198298 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499152201102 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152205152 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152207069 Marionette DEBUG Received DOM event "hashchange" for "http://127.0.0.1:8181/#/dashboard/detailedview" -1499152209036 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152209327 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499152210183 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163847081 geckodriver INFO Listening on 127.0.0.1:64615 -1499163848065 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499163850042 Marionette INFO Listening on port 64626 -1499163850123 Marionette WARN TLS certificate errors will be ignored for this session -1499163850330 Marionette DEBUG loaded listener.js -2017-07-04 05:24:10.413 plugin-container[27347:830870] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9e3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 05:24:10.416 plugin-container[27347:830870] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xa103, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499163877275 geckodriver INFO Listening on 127.0.0.1:64761 -1499163878267 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499163880122 Marionette INFO Listening on port 64771 -1499163880198 Marionette WARN TLS certificate errors will be ignored for this session -1499163880395 Marionette DEBUG loaded listener.js -2017-07-04 05:24:40.477 plugin-container[27398:832466] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9d3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 05:24:40.480 plugin-container[27398:832466] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xa103, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499163881587 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499163881591 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499163881591 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499163881595 Marionette DEBUG Received DOM event "DOMContentLoaded" for "about:blank" -1499163881597 Marionette DEBUG Received DOM event "pageshow" for "about:blank" -1499163881616 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499163881625 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499163881626 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499163882259 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163882316 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163886432 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163890603 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163892524 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163892835 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163894379 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163894489 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894494 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894500 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894513 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894515 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894528 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894534 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163894535 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163895106 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163895134 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163895154 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499163895157 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499163895157 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499163895184 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163895187 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163895204 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499163895226 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499163895226 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499163895851 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163895895 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163899489 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163903430 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163905198 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163905517 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163907094 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163907202 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907205 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907209 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907219 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907222 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907236 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907247 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907247 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163907874 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163907905 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163907915 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499163907916 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499163907916 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499163907939 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163907941 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163907949 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499163907962 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499163907962 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499163908599 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163908769 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163912416 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163916378 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163918004 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163918277 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163918558 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163928608 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928611 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928611 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928618 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928620 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928631 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928638 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163928638 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499163929238 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163929286 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163929299 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499163929301 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499163929301 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499163929306 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163929307 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163929323 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499163929331 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499163929331 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499163929911 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499163929942 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499163933589 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163937477 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499163939417 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164000086 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000089 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000089 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000095 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000097 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000110 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000118 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000118 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/dashboard/overview" -1499164000733 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499164000775 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499164000796 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499164000797 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499164000798 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499164000808 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499164000810 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499164000830 Marionette DEBUG Received DOM event "beforeunload" for "http://127.0.0.1:8181/#/login" -1499164000835 Marionette DEBUG Received DOM event "pagehide" for "http://127.0.0.1:8181/#/login" -1499164000835 Marionette DEBUG Received DOM event "unload" for "http://127.0.0.1:8181/#/login" -1499164001442 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499164001473 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499164005002 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164009125 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164011222 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164061184 geckodriver INFO Listening on 127.0.0.1:49840 -1499164062184 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args ["-marionette"] -1499164063929 Marionette INFO Listening on port 49853 -1499164064005 Marionette WARN TLS certificate errors will be ignored for this session -1499164064194 Marionette DEBUG loaded listener.js -2017-07-04 05:27:44.263 plugin-container[27664:839177] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-04 05:27:44.265 plugin-container[27664:839177] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xa003, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -1499164064905 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499164064908 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499164064909 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499164064912 Marionette DEBUG Received DOM event "DOMContentLoaded" for "about:blank" -1499164064914 Marionette DEBUG Received DOM event "pageshow" for "about:blank" -1499164064938 Marionette DEBUG Received DOM event "beforeunload" for "about:blank" -1499164064945 Marionette DEBUG Received DOM event "pagehide" for "about:blank" -1499164064945 Marionette DEBUG Received DOM event "unload" for "about:blank" -1499164065588 Marionette DEBUG Received DOM event "DOMContentLoaded" for "http://127.0.0.1:8181/#/login" -1499164065656 Marionette DEBUG Received DOM event "pageshow" for "http://127.0.0.1:8181/#/login" -1499164076153 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164081161 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164087611 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164096907 Marionette DEBUG Canceled page load listener because no navigation has been detected -1499164102838 Marionette DEBUG Canceled page load listener because no navigation has been detected -************************* -A coding exception was thrown and uncaught in a Task. - -Full message: TypeError: NetworkError when attempting to fetch resource. -Full stack: -************************* - -###!!! [Child][MessageChannel] Error: (msgtype=0x4400AB,name=PContent::Msg_ConsoleMessage) Channel closing: too late to send/recv, messages will be lost - -2017-07-05 01:29:32.549 plugin-container[69140:2641840] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-05 01:29:32.553 plugin-container[69140:2641840] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9f03, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-05 05:00:06.804 plugin-container[81584:2977711] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c3b, name = 'com.apple.tsm.portname' -See /usr/include/servers/bootstrap_defs.h for the error codes. -2017-07-05 05:00:06.808 plugin-container[81584:2977711] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9f03, name = 'com.apple.CFPasteboardClient' -See /usr/include/servers/bootstrap_defs.h for the error codes. -************************* -A coding exception was thrown and uncaught in a Task. - -Full message: TypeError: NetworkError when attempting to fetch resource. -Full stack: -************************* -************************* -A coding exception was thrown and uncaught in a Task. - -Full message: TypeError: NetworkError when attempting to fetch resource. -Full stack: -************************* -1499513160629 Marionette INFO Ceased listening diff --git a/tests/uiTests/test_admin_dropdown.py b/tests/uiTests/test_admin_dropdown.py deleted file mode 100644 index 8b838d6..0000000 --- a/tests/uiTests/test_admin_dropdown.py +++ /dev/null @@ -1,197 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from django.conf import settings - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase - -logger = LoggingServiceFactory.get_logger() - - -class TestAdminDropdown(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestAdminDropdown, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_archive_engagement(self): - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - # Creating new engagement because we will archive it - user_content = API.Bridge.create_engagement() - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - # Verify users were added to git (only after git finishes its work on - # the engagement we are able to archive the engagement) - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - if not API.GitLab.validate_git_project_members( - path_with_namespace, user_content['email']): - raise Exception( - "Couldn't find the engagement lead user (%s) in GitLab." % - user_content['email']) - Frontend.Dashboard.statuses_search_vf( - user_content['engagement_manual_id'], user_content['vfName']) - Frontend.Overview.click_on_archeive_engagement_from_dropdown() - Frontend.Overview.archive_engagement_modal( - user_content['engagement_manual_id'], user_content['vfName']) - - @exception() - def test_change_reviewer(self): - try: - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - other_user = DB.User.select_el_not_in_engagement( - user_content['el_name'], user_content['pr_name']) - Frontend.Dashboard.statuses_search_vf( - user_content['engagement_manual_id'], user_content['vfName']) - Frontend.Overview.click_on_change_reviewer_from_dropdown() - Frontend.Overview.change_engagement_lead_modal(other_user) - finally: - DB.User.rollback_for_el_not_in_engagement() - - @exception() - def test_change_peer_reviewer(self): - try: - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - other_user = DB.User.select_el_not_in_engagement( - self.user_content['el_name'], self.user_content['pr_name']) - Frontend.Dashboard.statuses_search_vf( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.Overview.click_on_change_peer_reviewer_from_dropdown() - Frontend.Overview.change_engagement_lead_modal( - other_user, is_reviewer=False) - finally: - DB.User.rollback_for_el_not_in_engagement() - - @exception() - def test_update_status(self): - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - Frontend.Dashboard.statuses_search_vf( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.Overview.click_on_update_status_from_dropdown() - Frontend.Overview.fill_update_status_form_admin_dropdown() - - @exception() - def test_update_status_via_EL(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.statuses_search_vf( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.Overview.click_on_update_status_from_dropdown() - Frontend.Overview.fill_update_status_form_admin_dropdown() - - @exception() - def test_update_status_via_peer_reviewer(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.statuses_search_vf( - user_content['engagement_manual_id'], user_content['vfName']) - Frontend.Overview.click_on_update_status_from_dropdown() - Frontend.Overview.fill_update_status_form_admin_dropdown() - - @exception() - def test_update_status_via_other_el(self): - try: - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - other_el = DB.User.select_el_not_in_engagement( - self.user_content['el_name'], self.user_content['pr_name']) - other_el_email = DB.User.get_email_by_full_name(other_el) - Frontend.Dashboard.statuses_search_vf( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - engName = self.user_content[ - 'engagement_manual_id'] + ": " + self.user_content['vfName'] - vf_left_nav_id = "clickable-" + engName - Frontend.User.open_invite_team_member_form(vf_left_nav_id) - Frontend.User.invite_single_user_to_team(other_el_email) - Frontend.General.re_open(Constants.Default.LoginURL.TEXT) - Frontend.Overview.invite_and_reopen_link( - self.user_content, other_el_email) - Frontend.User.login( - other_el_email, - Constants.Default.Password.TEXT, - Constants.Dashboard.Default.DASHBOARD_ID) - Frontend.Overview.click_on_update_status_from_dropdown() - Frontend.Overview.fill_update_status_form_admin_dropdown() - finally: - DB.User.rollback_for_el_not_in_engagement() - - @exception() - def test_remove_standard_users_after_archive_engagement(self): - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - # Creating new engagement because we will archive it - user_content = API.Bridge.create_engagement() - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - path_with_namespace = user_content[ - 'engagement_manual_id'] + "%2F" + user_content['vfName'] - if not API.GitLab.validate_git_project_members( - path_with_namespace, user_content['email']): - raise Exception( - "Couldn't find the inviter user (%s) in GitLab." % - user_content['email']) - if settings.DATABASE_TYPE != 'local': - git_user = API.GitLab.get_git_user(user_content['email']) - git_user_id = str(git_user['id']) - Frontend.Dashboard.statuses_search_vf( - user_content['engagement_manual_id'], user_content['vfName']) - Frontend.Overview.click_on_archeive_engagement_from_dropdown() - Frontend.Overview.archive_engagement_modal( - user_content['engagement_manual_id'], user_content['vfName']) - API.GitLab.negative_validate_git_project_member( - path_with_namespace, user_content['email'], git_user_id) diff --git a/tests/uiTests/test_admin_section.py b/tests/uiTests/test_admin_section.py deleted file mode 100644 index f1339a1..0000000 --- a/tests/uiTests/test_admin_section.py +++ /dev/null @@ -1,81 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.session import session -from services.types import Frontend, API -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestAdminSection(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestAdminSection, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_admin_page(self): - Frontend.User.login( - Constants.Users.Admin.EMAIL, - Constants.Default.Password.TEXT) - Frontend.User.go_to_account() - Frontend.User.go_to_admin() - - @exception() - def test_negative_admin_page(self): - users_email_list = [ - self.user_content['email'], - self.user_content['pr_email'], - self.user_content['el_email'], - Constants.Users.AdminRO.EMAIL] - for user_email in users_email_list: - Frontend.User.relogin(user_email, Constants.Default.Password.TEXT) - Frontend.User.click_on_avatar() - session.run_negative( - lambda: Frontend.User.click_on_admin(), - "Negative test failed at" - " click_on_admin with user %s" % - user_email) diff --git a/tests/uiTests/test_bucket_e2e.py b/tests/uiTests/test_bucket_e2e.py deleted file mode 100644 index 246ba8d..0000000 --- a/tests/uiTests/test_bucket_e2e.py +++ /dev/null @@ -1,150 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from pprint import pprint - -from wheel.signatures import assertTrue - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.database.db_user import DBUser -from services.frontend.base_actions.wait import Wait -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API -from tests.uiTests.test_ui_base import TestUiBase -from utils.cryptography import CryptographyText - - -logger = LoggingServiceFactory.get_logger() - - -class TestBucketE2E(TestUiBase): - - def create_bucket_and_validate_users(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=True) - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - bucket_id = user_content[ - 'engagement_manual_id'] + "_" + user_content['vfName'].lower() - Wait.bucket_to_create(bucket_id) - bucket = API.Rados.get_bucket(bucket_id) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - assertTrue(bucket != "None") - assertTrue(API.Rados.users_of_bucket_ready_after_created( - bucket_id, user_content['uuid'])) - # validate users added to bucket - grants = API.Rados.get_bucket_grants(bucket_id) - count = 0 - for g in grants: - if g.id == user_content['uuid']: - count = +1 - - assertTrue(count > 0) - return bucket, user_content - - @exception() - def test_validate_bucket_created(self): - bucket, user_content = self.create_bucket_and_validate_users() - # create upload file - str_content = Helper.rand_string( - "randomString") + Helper.rand_string("randomNumber") - fileName = Helper.rand_string("randomString") - bucket_id = user_content[ - 'engagement_manual_id'] + "_" + user_content['vfName'].lower() - Wait.bucket_to_create(bucket_id) - bucket = API.Rados.get_bucket(bucket_id) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - key = bucket.new_key(fileName + '.dat') - key.set_contents_from_string(str_content) - pprint(key.generate_url(expires_in=400)) -# DOWNLOAD AN OBJECT (TO A FILE) - key = bucket.get_key(fileName + '.dat') - key.get_contents_to_filename('/home/' + fileName + '.dat') - key.delete() - - @exception() - def test_validate_bucket_removed(self): - bucket, user_content = self.create_bucket_and_validate_users() - # set Completed Stage - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.COMPLETED) - # validate users removed from bucket - bucket_id = user_content[ - 'engagement_manual_id'] + "_" + user_content['vfName'].lower() - assertTrue(API.Rados.users_of_bucket_ready_after_complete( - bucket_id, user_content['full_name'])) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - assertTrue(bucket != "None") - # try create upload file - must failed - str_content = Helper.rand_string( - "randomString") + Helper.rand_string("randomNumber") - fileName = Helper.rand_string("randomString") - bucket = API.Rados.get_bucket(bucket_id) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - key = bucket.new_key(fileName + '.dat') - key.set_contents_from_string(str_content) - pprint(key.generate_url(expires_in=400)) -# DOWNLOAD AN OBJECT (TO A FILE) - key = bucket.get_key(fileName + '.dat') - key.get_contents_to_filename('/home/' + fileName + '.dat') - key.delete() - - @exception() - def test_validate_upload_download_image_with_bucket_user(self): - bucket, user_content = self.create_bucket_and_validate_users() - # connect to bucket with specific user - bucket_id = user_content[ - 'engagement_manual_id'] + "_" + user_content['vfName'].lower() - access_key = DBUser.get_access_key(user_content['uuid']) - secret_key = DBUser.get_access_secret(user_content['uuid']) - secret = CryptographyText.decrypt(secret_key) - bucket_for_specific_user = API.Rados.get_bucketfor_specific_user( - bucket_id, access_key, secret) - assertTrue(bucket_for_specific_user is not None) - # create upload file with user - str_content = Helper.rand_string( - "randomString") + Helper.rand_string("randomNumber") - fileName = Helper.rand_string("randomString") - key = bucket_for_specific_user.new_key(fileName + '.dat') - key.set_contents_from_string(str_content) - pprint(key.generate_url(expires_in=3600)) -# DOWNLOAD AN OBJECT (TO A FILE) - key = bucket_for_specific_user.get_key(fileName + '.dat') - key.get_contents_to_filename('/home/' + fileName + '.dat') - key.delete() diff --git a/tests/uiTests/test_bucket_url.py b/tests/uiTests/test_bucket_url.py deleted file mode 100644 index 632b113..0000000 --- a/tests/uiTests/test_bucket_url.py +++ /dev/null @@ -1,75 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.session import session -from services.types import API, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestBucketURL(TestUiBase): - user_content = None - - @exception() - def test_bucket_url_not_appears_stage_intake(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - session.run_negative( - lambda: Frontend.Overview.validate_bucket_url( - user_content['engagement_manual_id'], user_content['vfName']), - "Storage bucket URL appears on stage Intake") - - @exception() - def test_bucket_url(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.validate_bucket_url( - user_content['engagement_manual_id'], user_content['vfName']) diff --git a/tests/uiTests/test_checklist_validations.py b/tests/uiTests/test_checklist_validations.py deleted file mode 100644 index bac465d..0000000 --- a/tests/uiTests/test_checklist_validations.py +++ /dev/null @@ -1,333 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from wheel.signatures import assertTrue - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.get import Get -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import Frontend, DB, API -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestChecklistValidations(TestUiBase): - ''' - Name: test_Create_New_Checklist - Steps: - - ''' - - user_content = None - user_content_api = None - - @classmethod - def setUpClass(cls): - super(TestChecklistValidations, cls).setUpClass() - - cls.user_content_api = \ - API.User.create_new_user_content_login_with_api() - cls.user_content = API.VirtualFunction.create_engagement() - - @exception() - def test_create_new_checklist(self): - API.GitLab.git_clone_push(self.user_content) - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - vfName = self.user_content['vfName'] - # Fetch one AT&T user ID. - engagement_id = DB.General.select_where( - "engagement_id", "ice_vf", "name", vfName, 1) - engLeadEmail = DB.User.select_el_email(vfName) - engagement_manual_id = DB.General.select_where( - "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1) - myVfName = engagement_manual_id + ": " + vfName - actualVfNameid = "clickable-" + myVfName - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.complete_defaults_nextsteps(engagement_id) - Frontend.User.relogin( - engLeadEmail, - Constants.Default.Password.TEXT, - engagement_manual_id) - Frontend.Overview.click_on_vf(self.user_content) - actualVfName = Get.by_id(actualVfNameid) - checklistName = Frontend.Checklist.create_checklist( - engagement_id, vfName, actualVfName, engagement_manual_id) - Frontend.Checklist.click_on_checklist(self.user_content, checklistName) - - @exception() - def test_e2e_checklist_positive_test(self): - newObj, user_content = API.User.create_new_user_content() - newObjWithChecklist = Frontend.Checklist.create_new_checklist(newObj) - checklistUuid = newObjWithChecklist[0] - engLeadEmail = newObjWithChecklist[1] - engagement_manual_id = newObjWithChecklist[2] - actualVfNameid = newObjWithChecklist[3] - checklistName = newObjWithChecklist[5] - DB.Checklist.state_changed( - "uuid", checklistUuid, Constants.ChecklistStates.Review.TEXT) - DB.Checklist.update_decisions(checklistUuid, checklistName) - - Frontend.User.relogin( - engLeadEmail, - Constants.Default.Password.TEXT, - engagement_manual_id) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.review_state_actions_and_validations( - checklistName, user_content['vfName'], "review") - - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - engPeerReviewerLeadEmail = DB.Checklist.get_pr_email(checklistUuid) - Frontend.User.relogin(engPeerReviewerLeadEmail, - Constants.Default.Password.TEXT) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.review_state_actions_and_validations( - checklistName, user_content['vfName'], "PEER") - - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - engPeerReviewerLeadEmail = DB.Checklist.get_admin_email(checklistUuid) - Frontend.User.relogin(engPeerReviewerLeadEmail, - Constants.Default.Password.TEXT) - Frontend.Checklist.search_by_vfname_for_not_local(user_content) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.approval_state_actions_and_validations( - checklistName, newObj, "APPROVAL") - - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - Frontend.User.relogin(engLeadEmail, Constants.Default.Password.TEXT) - ownerLeadEmail = DB.Checklist.get_owner_email(checklistUuid) - Helper.internal_assert(engLeadEmail, ownerLeadEmail) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.approval_state_actions_and_validations( - checklistName, newObj, "HANDOFF") - - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - - @exception() - def test_e2e_checklist_reject(self): - newObj, user_content = API.User.create_new_user_content() - newObjWithChecklist = Frontend.Checklist.create_new_checklist(newObj) - checklistUuid = newObjWithChecklist[0] - engLeadEmail = newObjWithChecklist[1] - engagement_manual_id = newObjWithChecklist[2] - actualVfNameid = newObjWithChecklist[3] - checklistName = newObjWithChecklist[5] - DB.Checklist.state_changed( - "uuid", checklistUuid, Constants.ChecklistStates.Review.TEXT) - DB.Checklist.update_decisions(checklistUuid, checklistName) - Frontend.User.relogin( - engLeadEmail, - Constants.Default.Password.TEXT, - engagement_manual_id) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.review_state_actions_and_validations( - checklistName, user_content['vfName'], "review") - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - engPreeRiviewerLeadEmail = DB.Checklist.get_pr_email(checklistUuid) - Frontend.User.relogin(engPreeRiviewerLeadEmail, - Constants.Default.Password.TEXT) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.review_state_actions_and_validations( - checklistName, user_content['vfName'], "PEER") - - Frontend.Checklist.reject_checklist(newObj, checklistName) - - archive = DB.Checklist.is_archive(checklistName) - assertTrue(archive) - - @exception() - def test_e2e_checklist_update_add_next_step(self): - newObj, user_content = API.User.create_new_user_content() - newObjWithChecklist = Frontend.Checklist.create_new_checklist(newObj) - checklistUuid = newObjWithChecklist[0] - engLeadEmail = newObjWithChecklist[1] - engagement_manual_id = newObjWithChecklist[2] - actualVfNameid = newObjWithChecklist[3] - myVfName = newObjWithChecklist[4] - checklistName = newObjWithChecklist[5] - DB.Checklist.state_changed( - "uuid", checklistUuid, Constants.ChecklistStates.Review.TEXT) - DB.Checklist.update_decisions(checklistUuid, checklistName) - - Frontend.User.relogin( - engLeadEmail, - Constants.Default.Password.TEXT, - engagement_manual_id) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - - newFileNames = Frontend.Checklist.update_cl_name_and_associated_files( - engagement_manual_id) - DB.Checklist.update_checklist_to_review_state(newFileNames[0]) - Frontend.General.refresh() - Frontend.Checklist.add_nsteps( - checklistUuid, - actualVfNameid, - myVfName, - checklistName, - newFileNames) - - @exception() - def test_multi_el(self): - checklist_content = API.Checklist.create_checklist( - self.user_content_api) - newEL_content = API.VirtualFunction.create_engagement() - Frontend.User.login( - self.user_content_api['email'], Constants.Default.Password.TEXT) - myVfName = self.user_content_api['engagement_manual_id'] + \ - ": " + self.user_content_api['vfName'] - actualVfNameid = "clickable-" + myVfName - DB.Checklist.update_decisions( - checklist_content['uuid'], checklist_content['name']) - Frontend.User.relogin( - self.user_content_api['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content_api) - Frontend.Checklist.validate_multi_eng( - self.user_content_api, - checklist_content, - newEL_content, - actualVfNameid) - - @exception() - def test_create_checklist_without_files(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Checklist.create_cl_without_files(self.user_content) - - @exception() - def test_reject_anytime_checklist(self): - cl_content = API.Checklist.create_checklist(self.user_content_api) - DB.Checklist.state_changed( - "name", cl_content['name'], Constants.ChecklistStates.Review.TEXT) - Frontend.User.login( - self.user_content_api['el_email'], Constants.Default.Password.TEXT) - Frontend.Checklist.search_by_manual_id( - self.user_content_api['engagement_manual_id']) - recent_checklist_uuid = DB.Checklist.get_recent_checklist_uuid( - cl_content['name'])[0] - Frontend.Checklist.click_on_checklist( - self.user_content_api, cl_content['name'], recent_checklist_uuid) - Frontend.Checklist.reject("Reject checklist on review state.") - DB.Checklist.state_changed( - "uuid", recent_checklist_uuid, - Constants.ChecklistStates.Archive.TEXT) - - @exception() - def test_clone_decision_auditlogs(self): - cl_content = API.Checklist.create_checklist(self.user_content_api) - DB.Checklist.state_changed( - "name", cl_content['name'], Constants.ChecklistStates.Review.TEXT) - Frontend.User.login( - self.user_content_api['el_email'], - Constants.Default.Password.TEXT, - self.user_content_api['engagement_manual_id']) - recent_checklist_uuid = DB.Checklist.get_recent_checklist_uuid( - cl_content['name'])[0] - Frontend.Checklist.click_on_checklist( - self.user_content_api, cl_content['name'], recent_checklist_uuid) - log_txt = Frontend.Checklist.add_line_item_audit_log() - Frontend.Checklist.reject( - 'Reject checklist as part of test_clone_decision_auditlogs test') - DB.Checklist.state_changed( - "uuid", - recent_checklist_uuid, - Constants.ChecklistStates.Archive.TEXT) - recent_checklist_uuid = DB.Checklist.get_recent_checklist_uuid( - cl_content['name'])[0] - Frontend.Checklist.click_on_checklist( - self.user_content_api, cl_content['name'], recent_checklist_uuid) - Frontend.Checklist.validate_audit_log(log_txt) - - @exception() - def test_review_jenkins_log(self): - cl_content = API.Checklist.create_checklist( - self.user_content_api) - DB.Checklist.state_changed( - "name", cl_content['name'], Constants.ChecklistStates.Review.TEXT) - Frontend.User.login( - self.user_content_api['el_email'], - Constants.Default.Password.TEXT, - self.user_content_api['engagement_manual_id']) - Frontend.Checklist.click_on_checklist( - self.user_content_api, cl_content['name'], cl_content['uuid']) - Frontend.Checklist.get_jenkins_log() - - @exception() - def test_review_jenkins_after_archiving(self): - cl_content = API.Checklist.create_checklist( - self.user_content_api) - DB.Checklist.state_changed( - "name", cl_content['name'], Constants.ChecklistStates.Review.TEXT) - Frontend.User.login( - self.user_content_api['el_email'], - Constants.Default.Password.TEXT, - self.user_content_api['engagement_manual_id']) - cl_content['uuid'] = DB.Checklist.get_recent_checklist_uuid( - cl_content['name'])[0] - Frontend.Checklist.click_on_checklist( - self.user_content_api, cl_content['name'], cl_content['uuid']) - log_1 = Frontend.Checklist.get_jenkins_log() - build_identifier_1 = API.Jenkins.find_build_num_out_of_jenkins_log( - log_1) - Frontend.Checklist.reject( - 'Reject checklist as part of test_clone_decision_auditlogs test') - DB.Checklist.state_changed( - "uuid", cl_content['uuid'], Constants.ChecklistStates.Archive.TEXT) - - recent_checklist_uuid = DB.Checklist.get_recent_checklist_uuid( - cl_content['name'])[0] - Frontend.Checklist.click_on_checklist( - self.user_content_api, cl_content['name'], recent_checklist_uuid) - Frontend.Checklist.update_cl_associated_files( - self.user_content_api['engagement_manual_id']) - DB.Checklist.state_changed( - "name", cl_content['name'], Constants.ChecklistStates.Review.TEXT) - Frontend.General.refresh() - log_2 = Frontend.Checklist.get_jenkins_log() - build_identifier_2 = API.Jenkins.find_build_num_out_of_jenkins_log( - log_2) - Helper.internal_not_equal(build_identifier_1, build_identifier_2) diff --git a/tests/uiTests/test_cms_news_and_announcementsion.py b/tests/uiTests/test_cms_news_and_announcementsion.py deleted file mode 100644 index ad918d8..0000000 --- a/tests/uiTests/test_cms_news_and_announcementsion.py +++ /dev/null @@ -1,174 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from wheel.signatures import assertTrue - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from tests.uiTests.test_ui_base import TestUiBase -from services.types import API, Frontend, DB -logger = LoggingServiceFactory.get_logger() - - -class TestCMSNewsAndAnnoucements(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestCMSNewsAndAnnoucements, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - logger.debug("user_conntent = " + str(cls.user_content)) - - def setUp(self): - super(TestCMSNewsAndAnnoucements, self).setUp() - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) - - @exception() - def test_announcements(self): - categoryId = DB.Cms.get_cms_category_id('News') - assertTrue(len(categoryId) > 0 and not None) - - @exception() - def test_insert_post_Announcement(self): - title, description = DB.Cms.create_announcement() - Frontend.User.logout() - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.Cms.validae_announcement(title, description) - - @exception() - def test_insert_post_News(self): - title, description = DB.Cms.create_news() - Frontend.User.logout() - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.Cms.validate_news(title, description) - - @exception() - def test_insert_post_FAQ(self): - title, description = DB.Cms.create_faq() - Frontend.User.logout() - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.Cms.validate_FAQ(description) - - @exception() - def test_insert_page(self): - title, description = DB.Cms.create_page() - Frontend.Cms.validate_page(title, description) - - @exception() - def test_search_documentation_title(self): - title, description = DB.Cms.create_page() - logger.debug("About to login with EL and add VFC") - users = [ - self.user_content['el_email'], - self.user_content['pr_email'], - Constants.Users.AdminRO.EMAIL, - Constants.Users.Admin.EMAIL, - self.user_content['email']] - for user in users: - logger.debug("Login with user " + user) - Frontend.User.relogin( - user, - Constants.Default.Password.TEXT, - "documentation") - Frontend.Cms.search_documentation_title(title, self.user_content) - - @exception() - def test_search_documentation_content(self): - title, description = DB.Cms.create_page() - Frontend.Cms.search_documentation_content(title, description) - - ''' - Announcement toast should stay for 2 days after it was published - ''' - @exception() - def test_validate_expired_post_Announcement(self): - title, description = DB.Cms.create_announcement() - Frontend.User.logout() - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.Cms.validate_expired_post_Announcement( - self.user_content['email'], title, description) - - ''' - Announcement toast should stay was published if the user closes the message - ''' - @exception() - def test_Announcement_validate_toast(self): - title, description = DB.Cms.create_announcement() - Frontend.User.relogin( - self.user_content['email'], - Constants.Default.Password.TEXT, - Constants.Toast.CMS_ID) - Frontend.Cms.announcement_validate_toast( - title, description, self.user_content) - - ''' - Announcement toast is shown for users even after the entry has disappeared - from the widget on the Dashboard - ''' - @exception() - def test_validate_5_last_Announcement_displayed(self): - listOfTitleAnDescriptions = DB.Cms.create_announcements(6) - Frontend.User.relogin( - self.user_content['email'], - Constants.Default.Password.TEXT) - last_title = listOfTitleAnDescriptions[len( - listOfTitleAnDescriptions) - 1][0] - Frontend.Cms.validate_5_last_announcement_displayed( - listOfTitleAnDescriptions, self.user_content, last_title) - - @exception() - def test_insert_grandchild_page(self): - parent_title, parent_description = DB.Cms.create_page() - parent_id = DB.Cms.get_last_inserted_page_id() - child_title, child_description = DB.Cms.create_page(parent_id) - child_id = DB.Cms.get_last_inserted_page_id() - grand_child_title, grand_child_description = DB.Cms.create_page( - child_id) - Frontend.Cms.validate_grandchild_page( - parent_title, - child_title, - grand_child_title, - grand_child_description) diff --git a/tests/uiTests/test_dashboard_feature.py b/tests/uiTests/test_dashboard_feature.py deleted file mode 100644 index b1fc570..0000000 --- a/tests/uiTests/test_dashboard_feature.py +++ /dev/null @@ -1,164 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.session import session -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestDashboardFeature(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestDashboardFeature, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_validate_filtering_by_stage_intake(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.validate_filtering_by_stage( - self.user_content, Constants.EngagementStages.INTAKE) - - @exception() - def test_validate_filtering_by_stage_active(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.validate_filtering_by_stage_with_page_ids( - self.user_content, Constants.EngagementStages.ACTIVE) - - @exception() - def test_validate_filtering_by_stage_validated(self): - query = "UPDATE ice_engagement SET engagement_stage='Validated'" \ - " WHERE engagement_manual_id ='" + \ - str(self.user_content['engagement_manual_id']) + "';" - DB.General.update_by_query(query) - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.validate_filtering_by_stage_with_page_ids( - self.user_content, Constants.EngagementStages.VALIDATED) - - @exception() - def test_validate_filtering_by_stage_completed(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.validate_filtering_by_stage_with_page_ids( - self.user_content, Constants.EngagementStages.COMPLETED) - - @exception() - def test_validate_filtering_by_stage_all(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.validate_filtering_by_stage_with_page_ids( - self.user_content, Constants.EngagementStages.ALL) - - @exception() - def test_validate_statistics_by_stages(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.validate_statistics_by_stages(self.user_content) - - @exception() - def test_assigned_next_steps(self): - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.User.assigned_one_NS_to_user(self.user_content) - Frontend.Dashboard.check_if_the_eng_of_NS_is_the_correct_one( - self.user_content) - Frontend.Dashboard.check_if_creator_of_NS_is_the_EL(self.user_content) - Frontend.Overview.go_to_eng_overview_by_clicking_on_the_created_NS( - self.user_content) - - @exception() - def test_search_engagement(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - vfcName = Frontend.DetailedView.add_vfc() - users = [self.user_content['el_email'], self.user_content['pr_email'], - self.user_content['email'], - Constants.Users.Admin.EMAIL, Constants.Users.AdminRO.EMAIL] - session.wait_until_retires = 20 - Frontend.Dashboard.search_in_dashboard( - self.user_content, vfcName, users) - session.wait_until_retires = session.positive_wait_until_retires - - @exception() - def test_validate_statistics_modal_appears_for_peer_re(self): - Frontend.User.login( - self.user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.click_on_dashboard_and_validate_statistics( - is_negative=False) - - @exception() - def test_validate_statistics_modal_appears_for_el(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.click_on_dashboard_and_validate_statistics( - is_negative=False) - - @exception() - def test_validate_statistics_modal_appears_for_standart_user(self): - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.click_on_dashboard_and_validate_statistics( - is_negative=True) - - @exception() - def test_validate_statistics_modal_appears_for_admin(self): - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - Frontend.Dashboard.click_on_dashboard_and_validate_statistics( - is_negative=False) - - @exception() - def test_validate_statistics_modal_appears_for_admin_ro(self): - Frontend.User.login( - Constants.Users.AdminRO.EMAIL, Constants.Default.Password.TEXT) - Frontend.Dashboard.click_on_dashboard_and_validate_statistics( - is_negative=False) diff --git a/tests/uiTests/test_detailed_view.py b/tests/uiTests/test_detailed_view.py deleted file mode 100644 index e9870b8..0000000 --- a/tests/uiTests/test_detailed_view.py +++ /dev/null @@ -1,338 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -import uuid - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.session import session -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestDetailedView(TestUiBase): - ''' - Name: test_detailed_view - Steps: - Create new User via SignUp request-->Login with This One--> - build "activationUrl"--> - Validation of successful activate--> - close Wizard --> Logout-->login-->Open Wizard--> fill all fields - in all Tab's(4)--> - build inviteURL from email--> reopen browser with inviteURL--> - Validate fields filled's in SignUp form - ''' - - user_content = None - - @classmethod - def setUpClass(cls): - super(TestDetailedView, cls).setUpClass() - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_detailed_view(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.validate_all_titles_on_dv_form() - logger.debug("Add Deployment Target") - Frontend.DetailedView.add_deployment_target(self.user_content) - logger.debug("Add VFC no.1") - Frontend.DetailedView.add_vfcs("djoni", "loka") - Frontend.DetailedView.remove_vfc(self.user_content) - - @exception() - def test_update_aic_version(self): - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.update_aic_version() - Frontend.DetailedView.validate_aic_version() - - @exception() - def test_update_vf_version(self): - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - newVFVersionName = Frontend.DetailedView.update_vf_version() - Frontend.DetailedView.validate_vf_version(newVFVersionName) - - ''' - Add new ECOMP release to DB, go to detailed view and change - ECOMP release and AIC version. - Verify changes are saved and presented in UI. - ''' - @exception() - def test_edit_ecomp_release(self): - try: - EcompUuid = uuid.uuid4() - EcompName = Helper.rand_string("randomString") - DB.VirtualFunction.insert_ecomp_release(EcompUuid, EcompName) - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.update_ecomp_release(EcompName) - Frontend.DetailedView.validate_ecomp_version() - finally: - DB.VirtualFunction.delete_ecomp_release(EcompUuid, EcompName) - - @exception() - def test_role_for_deployment_targets(self): - users = [self.user_content['pr_email'], - self.user_content['el_email'], Constants.Users.Admin.EMAIL] - Frontend.DetailedView.validate_deployment_targets( - self.user_content, users) - - @exception() - def test_add_and_remove_deployment_targets(self): - users = [self.user_content['el_email'], Constants.Users.Admin.EMAIL] - Frontend.DetailedView.add_remove_deployment_targets( - self.user_content, users) - - @exception() - def test_negative_role_for_deployment_targets(self): - users = [self.user_content['email'], Constants.Users.AdminRO.EMAIL] - Frontend.DetailedView.validate_negative_role_for_deployment_targets( - self.user_content, users) - - @exception() - def test_change_target_lab_entry(self): - Frontend.User.login(Constants.Users.Admin.EMAIL, - Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - date = Frontend.DetailedView.update_target_lab_entry() - Frontend.DetailedView.validate_target_lab_entry(date) - - @exception() - def test_change_target_lab_entry_via_standard_user(self): - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - date = Frontend.DetailedView.update_target_lab_entry() - Frontend.DetailedView.validate_target_lab_entry(date) - - @exception() - def test_aic_dropdown_ordering(self): - new_aic_version = None - try: - DB.VirtualFunction.change_aic_version_weight(10, 0) - new_aic_version = DB.VirtualFunction.insert_aic_version() - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.click_on_update_aic_version() - Helper.internal_assert( - Frontend.General. - get_meta_order_of_element(Constants.Dashboard.DetailedView.AIC. - Dropdown.UniversalVersion.ID % - new_aic_version['version']), 0) - finally: - if new_aic_version: - DB.VirtualFunction.delete_aic_version(new_aic_version['uuid']) - DB.VirtualFunction.change_aic_version_weight(0, 10) - - @exception() - def test_ecomp_dropdown_ordering(self): - new_ecomp_release = None - try: - new_ecomp_release = { - "uuid": uuid.uuid4(), "name": Helper.rand_string()} - DB.VirtualFunction.change_ecomp_release_weight(10, 0) - DB.VirtualFunction.insert_ecomp_release( - new_ecomp_release['uuid'], new_ecomp_release['name']) - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.click_on_update_ecomp_release() - Helper.internal_assert( - Frontend.General.get_meta_order_of_element( - Constants.Dashboard.DetailedView.ECOMP.Dropdown. - UniversalRelease.ID % - new_ecomp_release['name']), 0) - finally: - if new_ecomp_release: - DB.VirtualFunction.delete_ecomp_release( - new_ecomp_release['uuid'], new_ecomp_release['name']) - DB.VirtualFunction.change_ecomp_release_weight(0, 10) - - @exception() - def test_retire_aic_version(self): - new_aic_version = None - try: - new_aic_version = DB.VirtualFunction.insert_aic_version("FALSE") - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.click_on_update_aic_version() - session.run_negative( - lambda: Frontend.General.get_meta_order_of_element( - Constants.Dashboard.DetailedView.AIC.Dropdown. - UniversalVersion.ID % - new_aic_version['version']), - "New AIC version was found in dropdown.") - finally: - if new_aic_version: - DB.VirtualFunction.delete_aic_version(new_aic_version['uuid']) - - @exception() - def test_retire_ecomp_release(self): - new_ecomp_release = None - try: - new_ecomp_release = { - "uuid": uuid.uuid4(), - "name": Helper.rand_string(), - "ui_visibility": "FALSE"} - DB.VirtualFunction.insert_ecomp_release( - new_ecomp_release['uuid'], - new_ecomp_release['name'], - new_ecomp_release['ui_visibility']) - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.click_on_update_ecomp_release() - session.run_negative( - lambda: Frontend.General.get_meta_order_of_element( - Constants.Dashboard.DetailedView.ECOMP.Dropdown. - UniversalRelease.ID % - new_ecomp_release['name']), - "New ECOMP release was found in dropdown.") - finally: - if new_ecomp_release: - DB.VirtualFunction.delete_ecomp_release( - new_ecomp_release['uuid'], new_ecomp_release['name']) - - @exception() - def test_retire_selected_aic_version(self): - old_aic_version_uuid = new_aic_version = None - try: - old_aic_version_uuid = DB.VirtualFunction.select_aic_version_uuid( - self.user_content['target_aic']) - new_aic_version = DB.VirtualFunction.insert_aic_version("FALSE") - self.user_content['session_token'] = "token " + \ - API.User.login_user(self.user_content['el_email']) - API.VirtualFunction.update_aic_version( - self.user_content['engagement_uuid'], - new_aic_version['uuid'], - self.user_content['session_token']) - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.compare_aic_selected_version( - new_aic_version['version']) - Frontend.DetailedView.click_on_update_aic_version() - Frontend.DetailedView.validate_deprecated_aic_version_in_dropdown( - new_aic_version['version']) - finally: - if old_aic_version_uuid: - API.VirtualFunction.update_aic_version( - self.user_content['engagement_uuid'], - old_aic_version_uuid, - self.user_content['session_token']) - if new_aic_version: - DB.VirtualFunction.delete_aic_version( - new_aic_version['uuid']) - - @exception() - def test_retire_selected_ecomp_release(self): - old_ecomp_release_uuid = new_ecomp_release = None - try: - old_ecomp_release_uuid = \ - DB.VirtualFunction.select_ecomp_release_uuid( - self.user_content['ecomp_release']) - new_ecomp_release = { - "uuid": str( - uuid.uuid4()), - "name": Helper.rand_string(), - "ui_visibility": "FALSE"} - DB.VirtualFunction.insert_ecomp_release( - new_ecomp_release['uuid'], - new_ecomp_release['name'], - new_ecomp_release['ui_visibility']) - self.user_content['session_token'] = "token " + \ - API.User.login_user(self.user_content['el_email']) - API.VirtualFunction.update_ecomp_release( - self.user_content['engagement_uuid'], - new_ecomp_release['uuid'], - self.user_content['session_token']) - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.DetailedView.search_vf_and_go_to_detailed_view( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.DetailedView.compare_selected_ecomp_release( - new_ecomp_release['name']) - Frontend.DetailedView.click_on_update_ecomp_release() - Frontend.DetailedView.\ - validate_deprecated_ecomp_release_in_dropdown( - new_ecomp_release['name']) - finally: - if self.user_content and old_ecomp_release_uuid: - API.VirtualFunction.update_ecomp_release( - self.user_content['engagement_uuid'], - old_ecomp_release_uuid, - self.user_content['session_token']) - DB.VirtualFunction.delete_ecomp_release( - new_ecomp_release['uuid'], new_ecomp_release['name']) diff --git a/tests/uiTests/test_edit_checklist_template.py b/tests/uiTests/test_edit_checklist_template.py deleted file mode 100644 index 6b636a8..0000000 --- a/tests/uiTests/test_edit_checklist_template.py +++ /dev/null @@ -1,110 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import Frontend, DB -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestChecklistTemplate(TestUiBase): - one_web_driver_enabled = False - - @classmethod - def setUpClass(cls): - super(TestChecklistTemplate, cls).setUpClass() - DB.Checklist.create_editing_cl_template_if_not_exist() - - @exception() - def test_save_checklist_template_without_changes(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.save_with_no_changes() - - @exception() - def test_discard_checklist_template_with_changes(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.discard_checklist_after_modification() - - @exception() - def test_save_checklist_template_after_edit_section_name(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.edit_template_and_save() - - @exception() - def test_save_checklist_template_after_lineitem_delete(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.del_lineitem_and_save() - - @exception() - def test_save_checklist_template_after_lineitem_added(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.add_lineitem_and_save() - - @exception() - def test_lineitem_added_and_verify_cl_changed(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.add_lineitem_and_check_db() - - @exception() - def test_save_checklist_template_after_edit_lineitem(self): - Frontend.ChecklistTemplate.basic_admin_navigation() - Frontend.ChecklistTemplate.click_on_template_name_on_navigation( - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT, - Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT) - Frontend.ChecklistTemplate.edit_description_lineitem_and_save() diff --git a/tests/uiTests/test_export_excel.py b/tests/uiTests/test_export_excel.py deleted file mode 100644 index d63ce45..0000000 --- a/tests/uiTests/test_export_excel.py +++ /dev/null @@ -1,73 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from selenium.common.exceptions import TimeoutException - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestFeatureExportToExcel(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestFeatureExportToExcel, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_validate_export_to_csv(self): - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) - Frontend.User.click_on_export_excel(self.user_content) - try: - token = "token " + \ - API.Bridge.login_user(self.user_content['email']) - content = API.VirtualFunction.get_export_dasboard_excel(token) - if not content: - raise Exception("content is empty.") - except TimeoutException: - logger.error("TimeoutException Not Appear") diff --git a/tests/uiTests/test_feedback_modal.py b/tests/uiTests/test_feedback_modal.py deleted file mode 100644 index 521f196..0000000 --- a/tests/uiTests/test_feedback_modal.py +++ /dev/null @@ -1,67 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import Frontend, API -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestFeedbackModal(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestFeedbackModal, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_add_feedback(self): - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) - Frontend.User.click_on_avatar() - Frontend.User.click_on_feedback() - description = Frontend.User.add_feedback() - Frontend.User.validate_feedback( - description, self.user_content['email']) diff --git a/tests/uiTests/test_invitations_and_throttle_logic.py b/tests/uiTests/test_invitations_and_throttle_logic.py deleted file mode 100644 index 2e44ffc..0000000 --- a/tests/uiTests/test_invitations_and_throttle_logic.py +++ /dev/null @@ -1,194 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.click import Click -from services.frontend.base_actions.enter import Enter -from services.frontend.base_actions.get import Get -from services.frontend.base_actions.wait import Wait -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestInvitationsLogic(TestUiBase): - ''' - Check that there is not an invitation entry in the table for a specific - email and engagement_uuid. If an entry exists, do not send an email. - ''' - - @exception() - def test_validate_duplicate_invite(self): - user_content = [] - for _ in range(3): - user_content.append( - API.VirtualFunction.create_engagement(wait_for_gitlab=False)) - Frontend.User.login( - user_content[0]['email'], Constants.Default.Password.TEXT) - engName = user_content[0][ - 'engagement_manual_id'] + ": " + user_content[0]['vfName'] - vf_left_nav_id = "clickable-" + engName - Click.id(vf_left_nav_id) - Frontend.Wizard.invite_team_members_modal(user_content[1]['email']) - enguuid = DB.General.select_where( - "uuid", - "ice_engagement", - "engagement_manual_id", - user_content[0]['engagement_manual_id'], - 1) - invitation_token = DB.User.select_invitation_token( - "invitation_token", - "ice_invitation", - "engagement_uuid", - enguuid, - user_content[1]['email'], - 1) - inviterURL = Constants.Default.InviteURL.Login.TEXT + invitation_token - Frontend.General.re_open(inviterURL) - title_id = "title-id-" + engName - Frontend.User.login( - user_content[1]['email'], - Constants.Default.Password.TEXT, - title_id) - vf_left_nav_id = "clickable-" + engName - Click.id(vf_left_nav_id) - actualVfName = Get.by_id(vf_left_nav_id) - Helper.internal_assert(engName, actualVfName) - Wait.text_by_id(Constants.Dashboard.Overview.Title.ID, engName) - Frontend.User.logout() - Frontend.User.login( - user_content[0]['email'], Constants.Default.Password.TEXT) - engName = user_content[0][ - 'engagement_manual_id'] + ": " + user_content[0]['vfName'] - vf_left_nav_id = "clickable-" + engName - Click.id(vf_left_nav_id) - Click.id(Constants.Dashboard.Overview.TeamMember.ID) - Wait.text_by_css(Constants.Dashboard.Wizard.Title.CSS, - Constants.Dashboard.Wizard.InviteTeamMembers. - Title.TEXT) - Enter.text_by_name("email", user_content[1]['email']) - Wait.text_by_css( - Constants.SubmitButton.CSS, - Constants.Dashboard.Wizard.InviteTeamMembers.Button.TEXT) - Click.css(Constants.SubmitButton.CSS) - Wait.id(Constants.Toast.ID) - Helper.internal_assert( - Get.by_id(Constants.Toast.ID), "Invite couldn't be created") - - ''' - If there are 5 invitations for a specific email in the last 24 - hours for a particular standard user - and/or email do not send an email. Note: ELs and admins do not - have a limit for how many invitations - they can get per 24 hours. - ''' - @exception() - def test_5_invitations_for_specific_SU_last_24_hours(self): - user_content = [] - for _ in range(2): - user_content.append( - API.Bridge.create_engagement(wait_for_gitlab=False)) - # Login with 1st user # - Frontend.User.login( - user_content[0]['email'], Constants.Default.Password.TEXT) - vf_left_nav_id = Frontend.Invite.invite_users(user_content) - # Login with 1st user # - Frontend.User.login( - user_content[0]['email'], Constants.Default.Password.TEXT) - x = 4 - Frontend.Invite.invite_x_users(user_content, vf_left_nav_id, x) - # Invite 6 # - Frontend.Invite.invite_and_validate_limit(user_content, vf_left_nav_id) - - ''' - If there are more than 25 invitations for an invited_by_user_uuid - corresponding to an normal standard users and read only admins, - do not send the invite. - ''' - @exception() - def test_25_invitations_for_an_invited_by_user_uuid(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - list_of_invite_emails = [] - list_of_invite_emails.append( - Constants.Users.LongEmailLengthStandardUser.EMAIL) - for _ in range(29): - list_of_invite_emails.append(Helper.rand_string("email")) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - engName = user_content[ - 'engagement_manual_id'] + ": " + user_content['vfName'] - vf_left_nav_id = "clickable-" + engName - Frontend.User.open_invite_team_member_form(vf_left_nav_id) - countOfem = 2 - countofUser = 0 - Frontend.Invite.invite_x_users_from_tm( - list_of_invite_emails, countofUser, countOfem, 9) - # Next 10 Users # - countOfem2 = 2 - countofUser2 = 10 - Click.id( - Constants.Dashboard.Overview.TeamMember.ID, wait_for_page=True) - Wait.text_by_css(Constants.Dashboard.Wizard.Title.CSS, - Constants.Dashboard.Wizard.InviteTeamMembers. - Title.TEXT) - Frontend.Invite.invite_x_users_from_tm( - list_of_invite_emails, countofUser2, countOfem2, 9) - countOfem3 = 2 - countofUser3 = 20 - Click.id( - Constants.Dashboard.Overview.TeamMember.ID, wait_for_page=True) - Wait.text_by_css(Constants.Dashboard.Wizard.Title.CSS, - Constants.Dashboard.Wizard.InviteTeamMembers. - Title.TEXT) - Frontend.Invite.invite_x_users_from_tm( - list_of_invite_emails, countofUser3, countOfem3, 5) - Wait.text_by_id(Constants.Toast.ID, - "Invite couldn't be created", wait_for_page=True) - - def test_3_invitations_new_user_to_3_vfs(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - engName = user_content[ - 'engagement_manual_id'] + ": " + user_content['vfName'] - Frontend.Invite.invite_x_users_and_verify_VF_appers_for_invited( - user_content, engName) diff --git a/tests/uiTests/test_left_nav_panel.py b/tests/uiTests/test_left_nav_panel.py deleted file mode 100644 index f564286..0000000 --- a/tests/uiTests/test_left_nav_panel.py +++ /dev/null @@ -1,219 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from selenium.webdriver.support.select import Select - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.click import Click -from services.frontend.base_actions.enter import Enter -from services.frontend.base_actions.get import Get -from services.frontend.base_actions.wait import Wait -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.session import session -from services.types import API, Frontend, DB -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestLeftNavPanel(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestLeftNavPanel, cls).setUpClass() - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - cls.eng_title = "%s: %s" % ( - cls.user_content['engagement_manual_id'], - cls.user_content['vfName']) - cls.left_panel_eng_id = "clickable-%s" % (cls.eng_title) - - def setUp(self): - super(TestLeftNavPanel, self).setUp() - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - - @exception() - def test_starred_recent_searchbar(self): - actualVfName = Get.by_id(self.left_panel_eng_id) - Helper.internal_assert(self.eng_title, actualVfName) - Click.id(self.left_panel_eng_id) - Wait.id("title-id-" + self.eng_title) - Helper.internal_assert( - self.user_content['engagement_manual_id'] + - ":", - Get.by_id( - "title-id-" + - self.eng_title)) - Click.id(Constants.Dashboard.Overview.Star.ID, wait_for_page=True) - Wait.id("title-id-" + self.eng_title) - Click.id(Constants.Dashboard.Overview.Star.ID, wait_for_page=True) - Wait.id("title-id-" + self.eng_title, wait_for_page=True) - Helper.internal_assert( - self.eng_title, Get.by_id(self.left_panel_eng_id)) - Enter.text_by_xpath( - "//input[@type='text']", - self.user_content['engagement_manual_id'], - wait_for_page=True) - Wait.text_by_css( - Constants.Dashboard.LeftPanel.SearchBox.Results.CSS, - self.eng_title) - Click.css( - Constants.Dashboard.LeftPanel.SearchBox.Results.CSS, - wait_for_page=True) - - @exception() - def test_search_bar(self): - """ Create user and VF, log in, add VFC, search by EID, VF and VFC """ - vfFullName = self.user_content[ - 'engagement_manual_id'] + ": " + self.user_content['vfName'] - try: - Enter.text_by_id( - Constants.Dashboard.LeftPanel.SearchBox.ID, - self.user_content['vfName']) - Wait.css(Constants.Dashboard.LeftPanel.SearchBox.Results.CSS) - Click.css(Constants.Dashboard.LeftPanel.SearchBox.Results.CSS) - Wait.text_by_id( - Constants.Dashboard.Overview.Title.ID, vfFullName) - except BaseException: - errorMsg = "Failed to search by VF name." - raise Exception(errorMsg) - - try: - Enter.text_by_id( - Constants.Dashboard.LeftPanel.SearchBox.ID, - self.user_content['engagement_manual_id']) - Enter.text_by_id( - Constants.Dashboard.LeftPanel.SearchBox.ID, - self.user_content['engagement_manual_id']) - Wait.css(Constants.Dashboard.LeftPanel.SearchBox.Results.CSS) - Click.css(Constants.Dashboard.LeftPanel.SearchBox.Results.CSS) - Wait.text_by_id( - Constants.Dashboard.Overview.Title.ID, vfFullName) - except BaseException: - errorMsg = "Failed to search by Engagement Manual ID." - raise Exception(errorMsg) - Frontend.Overview.click_on_vf(self.user_content) - detailedViewID = Constants.Dashboard.DetailedView.ID + vfFullName - Wait.text_by_id(detailedViewID, "Detailed View", wait_for_page=True) - Click.id(detailedViewID, wait_for_page=True) - Click.id( - Constants.Dashboard.DetailedView.VFC.Add.ID, wait_for_page=True) - vfcName = Helper.rand_string("randomString") - extRefID = Helper.rand_string("randomNumber") - Enter.text_by_name("name", vfcName) - Enter.text_by_name("extRefID", extRefID, wait_for_page=True) - Select(session.ice_driver.find_element_by_id( - Constants.Dashboard.DetailedView.VFC.Choose_Company.ID)).\ - select_by_visible_text(self.user_content['vendor']) - Click.id( - Constants.Dashboard.DetailedView.VFC.Save_button.ID, - wait_for_page=True) - try: - Enter.text_by_id( - Constants.Dashboard.LeftPanel.SearchBox.ID, - vfcName, - wait_for_page=True) - Click.id( - "search-" + self.user_content['vfName'], wait_for_page=True) - Wait.id("clickable-" + vfFullName, wait_for_page=True) - except Exception as e: - errorMsg = "Failed to search by VFC name." - raise Exception(errorMsg + str(e)) - - @exception() - def test_recent_bar_by_last_updated(self): - countIdsActive = 0 - myVfName = self.user_content[ - 'engagement_manual_id'] + ": " + self.user_content['vfName'] - actualVfNameid = "clickable-" + myVfName - actualVfName = Get.by_id(actualVfNameid) - Helper.internal_assert(myVfName, actualVfName) - Click.id(actualVfNameid) - uuid = DB.General.select_where_email( - "uuid", "ice_user_profile", self.user_content['el_email']) - ids2 = DB.User.select_recent_vf_of_user(uuid, 0) - part_of_id_to_find = "clickable-" - ids1 = session.ice_driver.find_elements_by_css_selector( - '[id*="%s"]' % part_of_id_to_find) - for ii in ids1: - if "clickable-" in ii.get_attribute('id'): - logger.debug("Fetched ID: " + ii.get_attribute('id')) - vf_name = ii.get_attribute('id').split(" ")[1] - vf_uuid = DB.General.select_where( - "uuid", "ice_vf", "name", vf_name, 1) - if vf_uuid in ids2: - countIdsActive += 1 - if(countIdsActive == len(ids2.split())): - logger.debug("Right result") - - @exception() - def test_entering_engagement_from_dashboard(self): - Wait.text_by_id(self.left_panel_eng_id, self.eng_title) - DB.VirtualFunction.remove_engagement_from_recent( - self.user_content['vf_uuid']) - Frontend.General.refresh() - Frontend.Dashboard.statuses_search_vf( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Wait.text_by_id(self.left_panel_eng_id, self.eng_title) - - @exception() - def test_search_by_email(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.relogin( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.search_in_left_searchbox_by_param( - user_content['engagement_manual_id'], - user_content['vfName'], - user_content['email']) - - @exception() - def test_search_by_username(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.relogin( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Dashboard.search_in_left_searchbox_by_param( - user_content['engagement_manual_id'], - user_content['vfName'], - user_content['full_name']) diff --git a/tests/uiTests/test_login_with_new_user.py b/tests/uiTests/test_login_with_new_user.py deleted file mode 100644 index 4cb0578..0000000 --- a/tests/uiTests/test_login_with_new_user.py +++ /dev/null @@ -1,650 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from wheel.signatures import assertTrue -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.click import Click -from services.frontend.base_actions.enter import Enter -from services.frontend.base_actions.get import Get -from services.frontend.base_actions.wait import Wait -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend, DB -from tests.uiTests.test_ui_base import TestUiBase - -logger = LoggingServiceFactory.get_logger() - - -class TestLoginPageWithNewUser(TestUiBase): - - @exception() - def test_login_positive(self): - ''' Create new user login. ''' - user_content = API.User.create_new_user() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT, - Constants.Toast.ID) - logger.debug("Resend Activation Email Page Opened ") - Wait.text_by_id( - Constants.Toast.ID, Constants.ActivateAccount.Toast.TEXT) - - @exception() - def test_login_negative(self): - ''' Negative: Type wrong password in login page. ''' - user_content = API.User.create_new_user(activate=True) - Frontend.User.login( - user_content['email'], Helper.rand_string("randomString"), - Constants.Toast.ID) - Wait.text_by_id(Constants.Toast.ID, Constants.Login.Toast.TEXT) - logger.debug( - "Message Error(APIUser or Password does not match) Displayed") - - @exception() - def test_login_negative_email_valid(self): - ''' Negative: Type wrong password in login page. ''' - user_content = API.User.create_new_user(activate=True) - Frontend.User.login( - user_content['email'] + "s", Constants.Default.Password.TEXT, - Constants.Toast.ID) - Wait.text_by_id(Constants.Toast.ID, Constants.Login.Toast.TEXT) - logger.debug( - "Message Error(APIUser or Password does not match) Displayed") - - @exception() - def test_login_negative_required_password(self): - ''' Check that password is a required field on login page. ''' - user_content = API.User.create_new_user() - logger.debug("Verifying and Insert Login page elements:") - Enter.text_by_name(Constants.Login.Email.NAME, user_content['email']) - Enter.text_by_name(Constants.Login.Password.NAME, "1") - Enter.text_by_name(Constants.Login.Password.NAME, "") - Wait.text_by_css( - Constants.Login.Password.Error.CSS, - Constants.Login.Password.Error.TEXT) - - @exception() - def test_login_page_dont_have_accaunt_button(self): - ''' - Go to login page, click_on on "Don't have an account", - verify user is redirected to signup page. - ''' - Click.id(Constants.Login.DontHaveAccount.ID) - Wait.text_by_css( - Constants.Signup.Title.CSS, Constants.Signup.Title.TEXT) - - @exception() - def test_login_page_home_button(self): - ''' Open login page, verify home button works correctly. ''' - Click.id(Constants.Home.Logo.ID) - Wait.text_by_id(Constants.Home.Title.ID, Constants.Home.Title.TEXT) - - @exception() - def test_create_and_activate_user(self): - ''' Create user and activate by log-in. ''' - user_content = API.User.create_new_user() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT, - Constants.Toast.ID) - ''' Resend Activation Email Page Opened ''' - Wait.text_by_id( - Constants.Toast.ID, Constants.ActivateAccount.Toast.TEXT) - activationUrl = DB.User.get_activation_url(user_content['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - - @exception() - def test_invite_existing_user(self): - ''' - Create user and VF, login, invite existing user, - login with second user and verify user has joined to engagement - ''' - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - second_user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - activationUrl = DB.User.get_activation_url(user_content['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - vfFullName = user_content[ - 'engagement_manual_id'] + ": " + user_content['vfName'] - actualVfNameid = "clickable-" + vfFullName - Click.id(actualVfNameid, wait_for_page=True) - Wait.id(Constants.Dashboard.Overview.TeamMember.ID) - Frontend.Wizard.invite_team_members_modal(second_user_content['email']) - enguuid = DB.General.select_where( - "uuid", - "ice_engagement", - "engagement_manual_id", - user_content['engagement_manual_id'], - 1) # Fetch one is_service_provider_contact user ID. - invitation_token = DB.User.select_invitation_token( - "invitation_token", - "ice_invitation", - "engagement_uuid", - enguuid, - second_user_content['email'], - 1) - inviterURL = Constants.Default.InviteURL.Login.TEXT + invitation_token - Frontend.General.re_open(inviterURL) - actualVfNameid = "clickable-" + vfFullName - Frontend.User.login( - second_user_content['email'], - Constants.Default.Password.TEXT, - actualVfNameid) - Wait.modal_to_dissappear() - Frontend.Overview.click_on_vf(user_content) - Wait.text_by_id(Constants.Dashboard.Overview.Title.ID, vfFullName) - - @exception() - def test_invite_new_user_of_service_provider_internal(self): - ''' - TC Name: test_invite_new_user_aservice_provider_internal - Steps: - Create new NOT-MainServiceProvider APIUser via SignUp request--> - Login with This One--> build "activationUrl"--> - Validation of successful activate--> - close Wizard --> Logout from Dashboard -->login-->Open Wizard--> - fill all fields in all Tab's(4)--> - validate second Tab is a "add_service_provider_internal"--> - build inviteURL from email--> reopen browser with inviteURL--> - Validate Login Form opened --> - Login--> Validate Dashboard Form opened - ''' - user_content = API.User.create_new_user(company="Amdocs") - uuid = DB.General.select_where_email( - "uuid", "ice_user_profile", user_content['email']) - activationUrl = DB.User.get_activation_url(user_content['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Frontend.User.logout() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_css( - Constants.Dashboard.LeftPanel.Title.CSS, - Constants.Dashboard.LeftPanel.Title.TEXT) - Wait.id(Constants.Dashboard.Statuses.Title.ID) - Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID) - # Wizard - vfName = Frontend.Wizard.add_vf() - service_provider_internal = \ - Frontend.Wizard.add_service_provider_internal() - inviteEmail = Helper.rand_invite_email() - Frontend.Wizard.invite_team_members(inviteEmail) - Frontend.Wizard.add_ssh_key() - enguuid = DB.General.select_where("uuid", "ice_vf", "name", vfName, 1) - invitation_token = DB.User.select_invitation_token( - "invitation_token", "ice_invitation", "engagement_uuid", - enguuid, inviteEmail, 1) - inviterURL = Constants.Default.InviteURL.Signup.TEXT + \ - invitation_token + "&email=" + inviteEmail - - Frontend.General.re_open(inviterURL) - actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME) - Helper.internal_assert(inviteEmail, actualInvitedEmail) - signUpURLforContact = DB.User.get_contact_signup_url( - invitation_token, - uuid, - service_provider_internal["email"], - service_provider_internal["full_name"], - service_provider_internal["phone"], - service_provider_internal["company"]) - Frontend.General.re_open(signUpURLforContact) - actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME) - Helper.internal_assert( - service_provider_internal["email"], actualInvitedEmail) - Helper.internal_assert( - "+" + service_provider_internal["phone"], - Get.value_by_name( - Constants.Signup.Phone.NAME)) - Helper.internal_assert( - service_provider_internal["full_name"], - Get.value_by_name( - Constants.Signup.FullName.NAME)) - signupCompany = Get.value_by_name(Constants.Signup.Company.NAME, True) - Helper.internal_assert( - service_provider_internal["company"], signupCompany) - - @exception() - def test_create_2_new_users(self): - ''' - Login and activate new user, - than reopen browser and loging with new other user - - check wizard appears for both Frontend.User. - ''' - # First APIUser - user_content = API.User.create_new_user() - logger.debug(user_content['email']) - activationUrl = DB.User.get_activation_url(user_content['email']) - logger.debug(activationUrl) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Frontend.User.logout() - # Second APIUser - user_content = API.User.create_new_user() - logger.debug(user_content['email']) - activationUrl2 = DB.User.get_activation_url(user_content['email']) - logger.debug(activationUrl2) - Frontend.General.re_open_not_clean_cache(activationUrl2) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Click.id(Constants.Dashboard.Avatar.ID) - - @exception() - def test_validate_account_form(self): - '''Go to Account page and validate details.''' - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - ssh_key = API.User.set_ssh(user_content) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.User.go_to_account() - Frontend.User.validate_account_details( - user_content['full_name'], user_content['phone_number'], ssh_key) - - @exception() - def test_add_vendor_contact(self): - ''' - TC Name: test_add_vendor_contact - Steps: - Invite vendor contact and activate the invited user. - Validate the invited user has the right VF. - ''' - user_content = API.User.create_new_user() - # Fetch one user ID. - uuid = DB.General.select_where_email( - "uuid", "ice_user_profile", user_content['email']) - activationUrl = DB.User.get_activation_url(user_content['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) # new - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Frontend.User.logout() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_css( - Constants.Dashboard.LeftPanel.Title.CSS, - Constants.Dashboard.LeftPanel.Title.TEXT) - Wait.id(Constants.Dashboard.Statuses.Title.ID) - logger.debug("click_on on + Dashboard") - Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID) - # Wizard - vfName = Frontend.Wizard.add_vf() - vendor_contact = Frontend.Wizard.add_vendor_contact() - inviteEmail = "automationqatt" + \ - Helper.rand_string("randomString") + "@gmail.com" - Frontend.Wizard.invite_team_members(inviteEmail) - Frontend.Wizard.add_ssh_key() - engagement_id = DB.General.select_where( - "engagement_id", "ice_vf", "name", vfName, 1) - engLeadEmail = DB.User.select_el_email(vfName) - engagement_manual_id = DB.General.select_where( - "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1) - invitation_token = DB.User.select_invitation_token( - "invitation_token", - "ice_invitation", - "engagement_uuid", - engagement_id, - vendor_contact["email"], - 1) - signUpURLforContact = DB.User.get_contact_signup_url( - invitation_token, - uuid, - vendor_contact["email"], - vendor_contact["full_name"], - vendor_contact["phone"], - vendor_contact["company"]) - Frontend.General.re_open(signUpURLforContact) - actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME) - Helper.internal_assert(vendor_contact["email"], actualInvitedEmail) - Helper.internal_assert( - "+" + vendor_contact["phone"], - Get.value_by_name( - Constants.Signup.Phone.NAME)) - Helper.internal_assert( - vendor_contact["full_name"], - Get.value_by_name( - Constants.Signup.FullName.NAME)) - Helper.internal_assert( - vendor_contact["company"], - Get.value_by_name( - Constants.Signup.Company.NAME)) - # SignUp for VendorContact - user_content['engagement_uuid'] = engagement_id - user_content['engagement_manual_id'] = engagement_manual_id - user_content['vfName'] = vfName - user_content['el_email'] = engLeadEmail - API.User.signup_invited_user( - vendor_contact["company"], - vendor_contact["email"], - invitation_token, - signUpURLforContact, - user_content, - True) - activationUrl2 = DB.User.get_activation_url(vendor_contact["email"]) - # Activate for VendorContact - myVfName = engagement_manual_id + ": " + vfName - actualVfNameid = "clickable-" + myVfName - Frontend.General.re_open(activationUrl2) - Frontend.User.login( - vendor_contact["email"], - Constants.Default.Password.TEXT, - actualVfNameid) - # Validate opened right VF for VendorContact - actualVfName = Get.by_id(actualVfNameid) - Helper.internal_assert(myVfName, actualVfName) - - @exception() - def test_add_service_provider_internal(self): - ''' - TC Name: test_add_service_provider_internal - Steps: - Invite is_service_provider_contact Sponsor and - activate the invited user. Validate sponsor has the right VF. - ''' - user_content = API.User.create_new_user(company="Amdocs") - uuid = DB.General.select_where_email( - "uuid", "ice_user_profile", user_content['email']) - activationUrl = DB.User.get_activation_url(user_content['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) # new - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Frontend.User.logout() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_css( - Constants.Dashboard.LeftPanel.Title.CSS, - Constants.Dashboard.LeftPanel.Title.TEXT) - Wait.id(Constants.Dashboard.Statuses.Title.ID) - logger.debug("click_on on + Dashboard") - Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID) - # Wizard - vfName = Frontend.Wizard.add_vf() - service_provider_internal = \ - Frontend.Wizard.add_service_provider_internal() - inviteEmail = "automationqatt" + \ - Helper.rand_string("randomString") + "@gmail.com" - Frontend.Wizard.invite_team_members(inviteEmail) - Frontend.Wizard.add_ssh_key() - enguuid = DB.General.select_where("uuid", "ice_vf", "name", vfName, 1) - invitation_token = DB.User.select_invitation_token( - "invitation_token", "ice_invitation", "engagement_uuid", - enguuid, inviteEmail, 1) - inviterURL = Constants.Default.InviteURL.Signup.TEXT + \ - invitation_token + "&email=" + inviteEmail - Frontend.General.re_open(inviterURL) - actualInvitedEmail = Get.value_by_name("email") - Helper.internal_assert(inviteEmail, actualInvitedEmail) - signUpURLforContact = DB.User.get_contact_signup_url( - invitation_token, - uuid, - service_provider_internal["email"], - service_provider_internal["full_name"], - service_provider_internal["phone"], - service_provider_internal["company"]) - Frontend.General.re_open(signUpURLforContact) - actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME) - Helper.internal_assert( - str( - "+" + - service_provider_internal["phone"]), - Get.value_by_name( - Constants.Signup.Phone.NAME)) - Helper.internal_assert( - service_provider_internal["full_name"], - Get.value_by_name( - Constants.Signup.FullName.NAME)) - Helper.internal_assert( - service_provider_internal["company"], - Get.value_by_name( - Constants.Signup.Company.NAME)) - # Fetch one is_service_provider_contact user ID. - engagement_id = DB.General.select_where( - "engagement_id", "ice_vf", "name", vfName, 1) - # SignUp for MainServiceProviderSponsorContact - engagement_manual_id = DB.General.select_where( - "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1) - - invitation_token = DB.User.select_invitation_token( - "invitation_token", - "ice_invitation", - "engagement_uuid", - engagement_id, - service_provider_internal["email"], - 1) - engLeadEmail = DB.User.select_el_email(vfName) - user_content['engagement_uuid'] = engagement_id - user_content['engagement_manual_id'] = engagement_manual_id - user_content['vfName'] = vfName - user_content['el_email'] = engLeadEmail - - API.User.signup_invited_user( - service_provider_internal["company"], - service_provider_internal["email"], - invitation_token, - signUpURLforContact, - user_content, - True) - activationUrl2 = DB.User.get_activation_url( - service_provider_internal["email"]) - # Activate for VendorContact - - engagement_manual_id = DB.General.select_where( - "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1) - # Validate opened right VF for VendorContact - myVfName = engagement_manual_id + ": " + vfName - actualVfNameid = "clickable-" + myVfName - Frontend.General.re_open(activationUrl2) - Frontend.User.login( - service_provider_internal["email"], - Constants.Default.Password.TEXT, - actualVfNameid) - actualVfName = Get.by_id(actualVfNameid, wait_for_page=True) - Helper.internal_assert(myVfName, actualVfName) - - @exception() - def test_Validate_SSHkeyNS(self): - ''' Insert a valid ssh key in wizard, validate "add ssh key" - next step marked as completed. - ''' - user_content = API.User.create_new_user() - activationUrl = DB.User.get_activation_url(user_content['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Frontend.User.logout() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_css( - Constants.Dashboard.LeftPanel.Title.CSS, - Constants.Dashboard.LeftPanel.Title.TEXT) - logger.debug("click_on on + Dashboard") - Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID) - # Wizard - vfName = Frontend.Wizard.add_vf() - Frontend.Wizard.add_vendor_contact() - inviteEmail = Helper.rand_invite_email() - Frontend.Wizard.invite_team_members(inviteEmail) - sshKey = Frontend.Wizard.add_ssh_key() - Frontend.User.go_to_account() - Wait.id(user_content['email']) - actualFullName = Get.value_by_name( - Constants.Dashboard.Avatar.Account.FullName.NAME) - Helper.internal_assert(user_content['full_name'], actualFullName) - actualSSHkey = Get.value_by_name( - Constants.Dashboard.Avatar.Account.SSHKey.NAME) - Helper.internal_assert(sshKey, actualSSHkey) - Click.id(Constants.Dashboard.Statuses.ID) - # VALIDATION FOR CONFIRMED BY ENG. LEAD - engLeadEmail = DB.User.select_el_email(vfName) - engagement_id = DB.General.select_where( - "engagement_id", "ice_vf", "name", vfName, 1) - engagement_manual_id = DB.General.select_where( - "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1) - myVfName = engagement_manual_id + ": " + vfName - actualVfNameid = "clickable-" + myVfName - Click.id(actualVfNameid) - Click.id("overview-" + myVfName) - Click.css("span.engagement_detail_menu_name") - Click.xpath("//span[2]/multiselect/div/button") - Click.link_text("Completed") - elFullName = DB.General.select_where( - "full_name", "ice_user_profile", "email", engLeadEmail, 1) - idNs = elFullName + "_Completed" - actualConfirmBy = str(Get.by_id(idNs)) - expectedConfirmBy = "System Next Step Completed: " - Helper.internal_assert(expectedConfirmBy, actualConfirmBy) - - @exception() - def test_current_status(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - vfName = user_content['vfName'] - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) # new - Frontend.Overview.click_on_vf(user_content) - Frontend.User.go_to_account() - Wait.id(user_content['email']) - actualFullName = Get.value_by_name("fullname") - Helper.internal_assert(user_content['full_name'], actualFullName) - Click.id(Constants.Dashboard.Statuses.ID) - Frontend.Overview.click_on_vf(user_content) - Helper.internal_assert("Current Status", Get.by_css( - Constants.Dashboard.Overview.Status.Header.ID)) - Wait.text_by_id(Constants.Dashboard.Overview.Status.Description.ID, - "No status update has been provided yet.") - Click.id(Constants.Dashboard.Avatar.ID) - Click.link_text("Logout") - engLeadEmail = DB.User.select_el_email(vfName) - Frontend.User.relogin(engLeadEmail, Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Click.css(Constants.Dashboard.Overview.Status.Add.CSS) - Helper.internal_assert( - "Add Status", Get.by_css("h3.modal-title.ng-binding")) - Helper.internal_assert( - "Use the form below to add the current status of the engagement.", - Get.by_css("span.ng-binding")) - Click.css("textarea[name=\"description\"]") - Enter.text_by_css( - "textarea[name=\"description\"]", - "Add new Status", - wait_for_page=True) - Helper.internal_assert("Add status", Get.by_id( - Constants.Dashboard.DetailedView.VFC.Save_button.ID)) - Click.id( - Constants.Dashboard.DetailedView.VFC.Save_button.ID, - wait_for_page=True) - Helper.assertTrue("Last updated" in Get.by_id("status-update-details")) - Wait.text_by_id( - Constants.Dashboard.Overview.Status.Description.ID, - "Add new Status") - Wait.css(Constants.Dashboard.Overview.Status.Edit.CSS) - Wait.modal_to_dissappear() - Click.css(Constants.Dashboard.Overview.Status.Edit.CSS) - Helper.internal_assert( - "Current Status", Get.by_css("h3.modal-title.ng-binding")) - Click.css("textarea[name=\"description\"]") - Enter.text_by_css("textarea[name=\"description\"]", "Update Status") - Click.id(Constants.Dashboard.DetailedView.VFC.Save_button.ID) - Wait.modal_to_dissappear() - Wait.text_by_id( - Constants.Dashboard.Overview.Status.Description.ID, - "Update Status") - Frontend.User.logout() - Frontend.User.relogin( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Helper.internal_assert("Current Status", Get.by_css( - Constants.Dashboard.Overview.Status.Header.ID)) - Wait.text_by_id( - Constants.Dashboard.Overview.Status.Description.ID, - "Update Status") - - @exception() - def test_XSS_script(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - validate = API.User.update_account_injec_script(user_content) - assertTrue(validate) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.User.open_account_form() - script = "" - Enter.text_by_name("fullname", script, wait_for_page=True) - Wait.text_by_css(Constants.SubmitButton.CSS, "Update") - Click.css(Constants.SubmitButton.CSS, wait_for_page=True) - Wait.text_by_css( - Constants.Toast.CSS, "Account was updated successfully!") - - @exception() - def test_add_vf(self): - user_content = API.User.create_new_user_content_login_with_api() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - # Wizard - Frontend.Overview.create_and_verify_VF_with_VFversion() diff --git a/tests/uiTests/test_next_step.py b/tests/uiTests/test_next_step.py deleted file mode 100644 index 5c281f8..0000000 --- a/tests/uiTests/test_next_step.py +++ /dev/null @@ -1,262 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.click import Click -from services.frontend.base_actions.wait import Wait -from services.frontend.fe_general import FEGeneral -from services.frontend.fe_next_step import FENextStep -from services.frontend.fe_overview import FEOverview -from services.frontend.fe_user import FEUser -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestNextStep(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestNextStep, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_add_next_step(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.add_next_step() - - @exception() - def test_add_next_step_via_pr(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.add_next_step() - - @exception() - def test_complete_next_steps(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - steps_uuids = DB.VirtualFunction.return_expected_steps( - user_content['engagement_uuid'], - Constants.EngagementStages.INTAKE, - user_content['email']) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - for step_uuid in steps_uuids: - Frontend.Overview.complete_next_step_and_wait_for_it_to_disappear( - step_uuid) - Helper.internal_assert(Frontend.Overview.get_list_of_next_steps(), []) - - @exception() - def test_filter_next_steps_by_associated_files(self): - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - user_content['session_token'] = "token " + \ - API.User.login_user(user_content['el_email']) - - # Create a checklist in order for the - # files to be viewed in the Overview. when - # we want to filter next steps by files in the Overview - EM shows us - # files that relate to the VF's CLs) - API.Checklist.create_checklist(user_content) - next_step_uuid = API.VirtualFunction.add_next_step( - user_content, [ - Constants.Dashboard.Overview.NextSteps. - FilterByFileDropDown.FILE0_LINK_TEXT]) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.next_steps_filter_by_files() - Helper.internal_assert( - Frontend.Overview.get_next_step_description(0), - DB.VirtualFunction.select_next_step_description(next_step_uuid)) - - @exception() - def test_filter_next_steps_by_associated_files_via_pr(self): - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - user_content['session_token'] = "token " + \ - API.User.login_user(user_content['el_email']) - API.Checklist.create_checklist(user_content) - next_step_uuid = API.VirtualFunction.add_next_step( - user_content, [ - Constants.Dashboard.Overview.NextSteps. - FilterByFileDropDown.FILE0_LINK_TEXT]) - Frontend.User.login( - user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.next_steps_filter_by_files() - Helper.internal_assert( - Frontend.Overview.get_next_step_description(0), - DB.VirtualFunction.select_next_step_description(next_step_uuid)) - - @exception() - def test_delete_next_step(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - steps_uuids = DB.VirtualFunction.select_next_steps_uuids_by_stage( - user_content['engagement_uuid'], Constants.EngagementStages.INTAKE) - for idx, step_uuid in enumerate(steps_uuids): - Frontend.Overview.delete_next_step(step_uuid) - logger.debug("Next step deleted! (%s of %s)" % - (idx + 1, len(steps_uuids))) - - @exception() - def test_delete_next_step_via_pr(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - steps_uuids = DB.VirtualFunction.select_next_steps_uuids_by_stage( - user_content['engagement_uuid'], Constants.EngagementStages.INTAKE) - for idx, step_uuid in enumerate(steps_uuids): - Frontend.Overview.delete_next_step(step_uuid) - logger.debug("Next step deleted! (%s of %s)" % - (idx + 1, len(steps_uuids))) - - @exception() - def test_next_steps_ordering(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - user_content['session_token'] = "token " + \ - API.User.login_user(user_content['email']) - steps_uuids = DB.VirtualFunction.return_expected_steps( - user_content['engagement_uuid'], - Constants.EngagementStages.INTAKE, - user_content['email']) - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID) - Click.link_text( - Constants.Dashboard.Overview.NextSteps. - StateDropDown.COMPLETED_LINK_TEXT) - Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID, - wait_for_page=True) - Frontend.Overview.validate_next_steps_order(steps_uuids) - for idx, step_uuid in enumerate(steps_uuids): - DB.VirtualFunction.update_next_step_position( - step_uuid, len(steps_uuids) - idx) - Frontend.General.refresh() - Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID, - wait_for_page=True) - Click.link_text( - Constants.Dashboard.Overview.NextSteps. - StateDropDown.COMPLETED_LINK_TEXT, - wait_for_page=True) - Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID, - wait_for_page=True) - Frontend.Overview.validate_next_steps_order( - list(reversed(steps_uuids))) - - @exception() - def test_next_step_with_empty_associated_files(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.validate_empty_associated_files() - - @exception() - def test_next_step_with_associated_files(self): - user_content = API.VirtualFunction.create_engagement() - API.GitLab.git_clone_push(user_content) - user_content['session_token'] = "token " + \ - API.User.login_user(user_content['el_email']) - Wait.page_has_loaded() - cl_content = API.Checklist.create_checklist(user_content) - DB.Checklist.state_changed( - "name", cl_content['name'], Constants.ChecklistStates.Review.TEXT) - new_cl_uuid = DB.Checklist.get_recent_checklist_uuid( - cl_content['name'])[0] - API.Checklist.add_checklist_next_step(user_content, new_cl_uuid) - Frontend.User.login( - user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.next_steps_filter_by_files() - Frontend.Overview.validate_associated_files( - Constants.Dashboard.Overview.NextSteps. - FilterByFileDropDown.FILE0_LINK_TEXT) - - @exception() - def test_all_vf_gitlab_repo_files_can_be_chosen_in_new_ns(self): - newObj, user_content = API.User.create_new_user_content() - user_content['session_token'] = "token " + \ - API.User.login_user(user_content['el_email']) - checklist = API.Checklist.create_checklist(user_content) - DB.Checklist.state_changed( - "uuid", checklist['uuid'], Constants.ChecklistStates.Review.TEXT) - Frontend.User.relogin( - user_content['el_email'], 'iceusers') - eng_id = "clickable-%s: %s" % ( - user_content['engagement_manual_id'], user_content['vfName']) - Frontend.Checklist.go_to_checklist(eng_id, checklist['uuid']) - Frontend.Checklist.get_to_create_new_ns_modal() - files = API.VirtualFunction.get_engagement(user_content)["files"] - FEGeneral.verify_existing_files_in_list( - files, 'associated-files-list') - - @exception() - def test_ns_choose_all_vf_gitlab_repo_files_via_select_all(self): - self.user_content['session_token'] = "token " + \ - API.User.login_user(self.user_content['el_email']) - API.GitLab.git_clone_push(self.user_content) - API.Checklist.create_checklist(self.user_content) - FEUser.login(self.user_content['el_email'], - Constants.Default.Password.TEXT) - FEOverview.click_on_vf(self.user_content) - Frontend.Checklist.get_to_create_new_ns_modal_via_overview() - FENextStep.check_select_deselect_all_files() diff --git a/tests/uiTests/test_notification_for_new_user.py b/tests/uiTests/test_notification_for_new_user.py deleted file mode 100644 index 076760c..0000000 --- a/tests/uiTests/test_notification_for_new_user.py +++ /dev/null @@ -1,109 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestNotificationForNewUser(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestNotificationForNewUser, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_notification_page_sanity(self): - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - logger.debug("Go to notifications page") - Frontend.User.go_to_notifications() - logger.debug("Remove one notification") - notificationIDs = DB.User.get_notification_id_by_email( - self.user_content['email']) - Frontend.User.delete_notification(notificationIDs[0]) - - @exception() - def test_validate_notifications(self): - user_content = API.VirtualFunction.create_engagement() - user_content['session_token'] = "token " + \ - API.User.login_user(user_content['el_email']) - Frontend.User.relogin( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.User.go_to_notifications() - notificationIDs = DB.User.get_notification_id_by_email( - user_content['email']) - notification_list = [ - user_content['full_name'] + - " joined " + - user_content['vfName'], - user_content['el_name'] + - " joined " + - user_content['vfName'], - user_content['pr_name'] + - " joined " + - user_content['vfName']] - Frontend.User.validate_notifications( - notificationIDs, notification_list) - - @exception() - def test_num_of_notifications_for_user(self): - Frontend.User.login( - self.user_content['el_email'], Constants.Default.Password.TEXT) - notifications_num = DB.User.get_not_seen_notifications_number_by_email( - self.user_content['el_email']) - Frontend.User.compare_notifications_count_for_user(notifications_num) - - @exception() - def test_zero_notifications_for_user(self): - Frontend.User.login( - self.user_content['pr_email'], Constants.Default.Password.TEXT) - Frontend.User.go_to_notifications() - notifications_num = DB.User.get_not_seen_notifications_number_by_email( - self.user_content['pr_email'], is_negative=True) - assert(notifications_num == "0") - Frontend.User.check_notification_number_is_not_presented() diff --git a/tests/uiTests/test_overview.py b/tests/uiTests/test_overview.py deleted file mode 100644 index e58f4ea..0000000 --- a/tests/uiTests/test_overview.py +++ /dev/null @@ -1,69 +0,0 @@ - -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -''' -Created on 25 Jul 2017 -''' -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend, DB -from tests.uiTests.test_ui_base import TestUiBase - -logger = LoggingServiceFactory.get_logger() - - -class TestOverview(TestUiBase): - - @exception() - def test_engagement_validation_details_update_when_cl_closed(self): - user_content = API.VirtualFunction.create_engagement() - cl_name = Constants.Dashboard.Checklist.\ - ChecklistDefaultNames.AIC_INSTANTIATION - DB.Checklist.state_changed( - "name", cl_name, Constants.ChecklistStates.Review.TEXT) - cl_uuid = DB.Checklist.get_recent_checklist_uuid(cl_name)[0] - vf_staff_emails = [user_content['el_email'], user_content[ - 'pr_email'], Constants.Users.Admin.EMAIL] - API.Checklist.move_cl_to_closed(cl_uuid, vf_staff_emails) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.change_engagement_stage( - Constants.EngagementStages.ACTIVE) - Frontend.Overview.verify_validation_dates() diff --git a/tests/uiTests/test_portal_homepage.py b/tests/uiTests/test_portal_homepage.py deleted file mode 100644 index 7995f44..0000000 --- a/tests/uiTests/test_portal_homepage.py +++ /dev/null @@ -1,56 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from django.conf import settings - -from iceci.decorator.exception_decor import exception -from services.logging_service import LoggingServiceFactory -from services.types import Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestPortalHomepage(TestUiBase): - @exception() - def test_homepage(self): - ''' Portal home page sanity, click on links, varify - buttons and headlines. ''' - Frontend.General.re_open(settings.ICE_PORTAL_URL) - Frontend.General.verify_home_elements() - Frontend.General.go_to_signup_from_homepage() diff --git a/tests/uiTests/test_progress_bar.py b/tests/uiTests/test_progress_bar.py deleted file mode 100644 index b1a168c..0000000 --- a/tests/uiTests/test_progress_bar.py +++ /dev/null @@ -1,95 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestProgressBar(TestUiBase): - user_content = None - - @exception() - def test_progress_bar_ui(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - logger.debug("Validate and check progress with engagement lead") - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.change_engagement_stage( - Constants.EngagementStages.ACTIVE) - Frontend.Overview.check_progress( - Constants.Dashboard.Overview.Progress.Percent.TEXT) - Frontend.Overview.set_progress( - Constants.Dashboard.Overview.Progress.Change.NUMBER) - Frontend.Overview.check_progress( - Constants.Dashboard.Overview.Progress.Change.TEXT) - logger.debug("Validate progress with standard user") - Frontend.User.relogin( - user_content['email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.check_progress( - Constants.Dashboard.Overview.Progress.Change.TEXT) - - @exception() - def test_vnf_version_with_value_appears_in_overview_progress_bar(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.change_engagement_stage( - Constants.EngagementStages.ACTIVE) - Frontend.Overview.check_vnf_version(user_content['vnf_version']) - - @exception() - def test_vnf_version_with_value_appears_in_dashboard_progress_bar(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['el_email'], Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - Frontend.Overview.change_engagement_stage( - Constants.EngagementStages.ACTIVE) - Frontend.Dashboard.search_by_vf(user_content) - Frontend.Dashboard.check_vnf_version(user_content) diff --git a/tests/uiTests/test_rados_perms.py b/tests/uiTests/test_rados_perms.py deleted file mode 100644 index dccd6d3..0000000 --- a/tests/uiTests/test_rados_perms.py +++ /dev/null @@ -1,113 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from wheel.signatures import assertTrue - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.wait import Wait -from services.logging_service import LoggingServiceFactory -from services.types import API -from tests.uiTests.test_ui_base import TestUiBase - -logger = LoggingServiceFactory.get_logger() - - -class TestRadosPermissions(TestUiBase): - - def create_bucket_and_validate_users(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=True) - - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.ACTIVE) - bucket_id = user_content['engagement_manual_id'] + \ - "_" + user_content['vfName'].lower() - Wait.bucket_to_create(bucket_id) - bucket = API.Rados.get_bucket(bucket_id) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - assertTrue(bucket != "None") - # validate users added to bucket - grants = API.Rados.get_bucket_grants(bucket_id) - count = 0 - for g in grants: - if g.id == user_content['uuid']: - count = +1 - - assertTrue(count > 0) - return bucket, user_content - - @exception() - def test_permissions_stage_validated(self): - bucket, user_content = self.create_bucket_and_validate_users() - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.VALIDATED) - bucket_id = user_content['engagement_manual_id'] + \ - "_" + user_content['vfName'].lower() - assertTrue( - API.Rados.users_of_bucket_ready_after_complete( - bucket_id, user_content['full_name'])) - bucket = API.Rados.get_bucket(bucket_id) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - assertTrue(bucket != "None") - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - bucket = API.Rados.get_bucket(bucket_id) - grants = API.Rados.get_bucket_grants(bucket_id) - print("\nBucket:", bucket) - print("\nBucket Type:", type(bucket)) - print("\nGrants:", grants) - print("\nGrants Type:", type(grants)) - print("done") - - @exception() - def test_permissions_stage_completed(self): - bucket, user_content = self.create_bucket_and_validate_users() - API.VirtualFunction.set_eng_stage( - user_content, Constants.EngagementStages.COMPLETED) - bucket_id = user_content['engagement_manual_id'] + \ - "_" + user_content['vfName'].lower() - assertTrue( - API.Rados.users_of_bucket_ready_after_complete( - bucket_id, user_content['full_name'])) - assertTrue(API.Rados.is_bucket_ready(bucket_id)) - bucket = API.Rados.get_bucket(bucket_id) - grants = API.Rados.get_bucket_grants(bucket_id) - print("\nBucket:", bucket) - print("\nBucket Type:", type(bucket)) - print("\nGrants:", grants) - print("\nGrants Type:", type(grants)) - print("done") diff --git a/tests/uiTests/test_remove_user_from_eng.py b/tests/uiTests/test_remove_user_from_eng.py deleted file mode 100644 index 1c0513a..0000000 --- a/tests/uiTests/test_remove_user_from_eng.py +++ /dev/null @@ -1,154 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants, ServiceProvider -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestRemoveUserFromEng(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestRemoveUserFromEng, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_remove_user_with_admin(self): - second_user_email, invite_token, invite_url = \ - API.VirtualFunction.invite_team_member( - self.user_content) - invited_user = API.User.signup_invited_user( - ServiceProvider.MainServiceProvider, - second_user_email, - invite_token, - invite_url, - self.user_content) - Frontend.User.login( - Constants.Users.Admin.EMAIL, - Constants.Default.Password.TEXT) - Frontend.Dashboard.statuses_search_vf( - self.user_content['engagement_manual_id'], - self.user_content['vfName']) - Frontend.Overview.remove_user_from_eng_team(invited_user["full_name"]) - - @exception() - def test_remove_user_with_reviewer(self): - second_user_email, invite_token, invite_url = \ - API.VirtualFunction.invite_team_member( - self.user_content) - invited_user = API.User.signup_invited_user( - ServiceProvider.MainServiceProvider, - second_user_email, - invite_token, - invite_url, - self.user_content) - Frontend.User.login( - self.user_content['el_email'], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.remove_user_from_eng_team(invited_user["full_name"]) - - @exception() - def test_remove_user_with_peer_reviewer(self): - second_user_email, invite_token, invite_url = \ - API.VirtualFunction.invite_team_member( - self.user_content) - invited_user = API.User.signup_invited_user( - ServiceProvider.MainServiceProvider, - second_user_email, - invite_token, - invite_url, - self.user_content) - Frontend.User.login( - self.user_content['pr_email'], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.remove_user_from_eng_team(invited_user["full_name"]) - - @exception() - def test_negative_remove_reviewer_from_eng(self): - Frontend.User.login( - self.user_content["pr_email"], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.remove_user_from_eng_team( - self.user_content["el_name"], True) - - @exception() - def test_negative_remove_peer_reviewer_from_eng(self): - Frontend.User.login( - self.user_content['el_email'], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.remove_user_from_eng_team( - self.user_content["pr_name"], True) - - @exception() - def test_negative_remove_creator_from_eng(self): - Frontend.User.login( - self.user_content['el_email'], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.remove_user_from_eng_team( - self.user_content["full_name"], True) - - @exception() - def test_negative_remove_contact_user_from_eng(self): - second_user_email, invite_token, invite_url = \ - API.VirtualFunction.add_contact( - self.user_content) - invited_user = API.User.signup_invited_user( - ServiceProvider.MainServiceProvider, - second_user_email, - invite_token, - invite_url, - self.user_content, - "true", - True) - Frontend.User.login(second_user_email, Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(self.user_content) - Frontend.Overview.remove_user_from_eng_team( - invited_user["full_name"], True) diff --git a/tests/uiTests/test_reset_password.py b/tests/uiTests/test_reset_password.py deleted file mode 100644 index 1e7d6a1..0000000 --- a/tests/uiTests/test_reset_password.py +++ /dev/null @@ -1,85 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend, DB -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestResetPassword(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestResetPassword, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_reset_password(self): - Frontend.General.send_reset_password(self.user_content['email']) - DB.User.set_new_temp_password(self.user_content['email']) - resetPasswURL = Helper.get_reset_passw_url(self.user_content['email']) - Frontend.General.re_open(resetPasswURL) - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT, - Constants.UpdatePassword.Title.CSS, - "css") - logger.debug("\nReset URL: %s \nTemp Password: %s \nUser Email: %s" % ( - resetPasswURL, Constants.Default.Password.TEXT, - self.user_content['email'])) - Frontend.User.reset_password() - logger.debug("Logout and verify new password works") - Frontend.User.logout() - logger.debug("Login with updated password") - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.NewPass.TEXT) - Frontend.User.logout() - logger.debug("Logout and change password back to 'iceusers'") - DB.User.set_password_to_default(self.user_content['email']) - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) diff --git a/tests/uiTests/test_rgwa_credentials.py b/tests/uiTests/test_rgwa_credentials.py deleted file mode 100644 index 15992f9..0000000 --- a/tests/uiTests/test_rgwa_credentials.py +++ /dev/null @@ -1,80 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, DB, Frontend -from tests.uiTests.test_ui_base import TestUiBase -from utils.cryptography import CryptographyText - - -logger = LoggingServiceFactory.get_logger() - - -class TestRGWACredentials(TestUiBase): - user_content = None - access_key = None - access_secret = None - - @classmethod - def setUpClass(cls): - super(TestRGWACredentials, cls).setUpClass() - cls.user_content = API.User.create_new_user(activate=True) - cls.access_key = DB.User.get_access_key(cls.user_content['uuid']) - cls.access_secret = DB.User.get_access_secret(cls.user_content['uuid']) - - def setUp(self): - super(TestRGWACredentials, self).setUp() - Frontend.User.login( - self.user_content['email'], Constants.Default.Password.TEXT) - - @exception() - def test_access_key(self): - Frontend.User.go_to_account() - Frontend.User.check_rgwa_access_key(self.access_key) - - @exception() - def test_access_secret(self): - Frontend.User.go_to_account() - access_secret = CryptographyText.decrypt(self.access_secret) - Frontend.User.check_rgwa_access_secret(access_secret) - - @exception() - def test_access_secret_not_presented(self): - Frontend.User.go_to_account() - Frontend.User.check_rgwa_access_secret_not_presented() diff --git a/tests/uiTests/test_sanity.py b/tests/uiTests/test_sanity.py deleted file mode 100644 index 5acc952..0000000 --- a/tests/uiTests/test_sanity.py +++ /dev/null @@ -1,194 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.frontend.base_actions.click import Click -from services.frontend.base_actions.get import Get -from services.frontend.base_actions.wait import Wait -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import Frontend, DB, API -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestSanity(TestUiBase): - - user_content = None - user_content_api = None - - @classmethod - def setUpClass(cls): - super(TestSanity, cls).setUpClass() - - cls.user_content_api = \ - API.User.create_new_user_content_login_with_api() - cls.user_content = API.VirtualFunction.create_engagement() - - @exception() - def test_e2e_checklist_add_next_step(self): - newObj, user_content = API.User.create_new_user_content() - newObjWithChecklist = Frontend.Checklist.create_new_checklist(newObj) - checklistUuid = newObjWithChecklist[0] - engLeadEmail = newObjWithChecklist[1] - engagement_manual_id = newObjWithChecklist[2] - actualVfNameid = newObjWithChecklist[3] - checklistName = newObjWithChecklist[5] - DB.Checklist.state_changed( - "uuid", checklistUuid, Constants.ChecklistStates.Review.TEXT) - DB.Checklist.update_decisions(checklistUuid, checklistName) - - Frontend.User.relogin( - engLeadEmail, - Constants.Default.Password.TEXT, - engagement_manual_id) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.review_state_actions_and_validations( - checklistName, user_content['vfName'], - Constants.ChecklistStates.Review.TEXT) - - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - engPreeRiviewerLeadEmail = DB.Checklist.get_pr_email(checklistUuid) - Frontend.User.relogin(engPreeRiviewerLeadEmail, - Constants.Default.Password.TEXT) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.review_state_actions_and_validations( - checklistName, user_content['vfName'], "PEER") - - Frontend.Checklist.cl_to_next_stage(actualVfNameid) - engPreeRiviewerLeadEmail = DB.Checklist.get_admin_email(checklistUuid) - Frontend.User.relogin(engPreeRiviewerLeadEmail, - Constants.Default.Password.TEXT) - Frontend.Checklist.search_by_vfname_for_not_local(user_content) - Frontend.Checklist.click_on_checklist(user_content, checklistName) - Frontend.Checklist.validate_reject_is_enabled() - Frontend.Checklist.approval_state_actions_and_validations( - checklistName, newObj, "APPROVAL") - Frontend.Checklist.add_next_step(checklistName, newObj) - Frontend.Overview.click_on_vf(user_content) - - @exception() - def test_admin_set_stage(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - stages = [ - Constants.EngagementStages.INTAKE, - Constants.EngagementStages.ACTIVE, - Constants.EngagementStages.VALIDATED, - Constants.EngagementStages.COMPLETED] - Frontend.User.login( - Constants.Users.Admin.EMAIL, Constants.Default.Password.TEXT) - Frontend.Dashboard.statuses_search_vf( - user_content['engagement_manual_id'], user_content['vfName']) - for idx, stage in enumerate(stages[:-1]): - next_stage = stages[(idx + 1) % len(stages)] - Frontend.Overview.check_stage_next_steps( - stage, user_content['engagement_uuid']) - Frontend.Overview.change_engagement_stage(next_stage) - - @exception() - def test_invite_new_user(self): - """ - Name: - test_invite_new_user - Steps: - Create new APIUser via SignUp request-->Login with This One--> - build "activationUrl"--> - Validation of successful activate--> - close Wizard --> Logout-->login-->Open Wizard--> - fill all fields in all Tab's(4)--> - build inviteURL from email--> reopen browser with inviteURL--> - Validate fields filled's in SignUp form - """ - user_content = API.User.create_new_user() - # Fetch one user ID. - uuid = DB.General.select_where_email( - "uuid", "ice_user_profile", user_content['email']) - Frontend.User.activate_and_login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_id( - Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT) - Click.id(Constants.Dashboard.Wizard.CloseButton.ID) - Wait.modal_to_dissappear() - Frontend.User.logout() - Frontend.User.login( - user_content['email'], Constants.Default.Password.TEXT) - Wait.text_by_css( - Constants.Dashboard.LeftPanel.Title.CSS, - Constants.Dashboard.LeftPanel.Title.TEXT) - logger.debug("click_on on + Dashboard") - Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID) - # Wizard - vfName = Frontend.Wizard.add_vf() - vendor_contact = Frontend.Wizard.add_vendor_contact() - inviteEmail = Helper.rand_invite_email() - Frontend.Wizard.invite_team_members(inviteEmail) - Frontend.Wizard.add_ssh_key() - enguuid = DB.General.select_where("uuid", "ice_vf", "name", vfName, 1) - inviterURL = Constants.Default.InviteURL.Signup.TEXT + \ - enguuid + "&inviter_uuid=" + uuid + "&email=" + inviteEmail - Frontend.General.re_open(inviterURL) - actualInvitedEmail = Get.value_by_name("email") - Helper.internal_assert(inviteEmail, actualInvitedEmail) - signUpURLforContact = DB.User.get_contact_signup_url( - enguuid, - uuid, - vendor_contact["email"], - vendor_contact["full_name"], - vendor_contact["phone"], - vendor_contact["company"]) - Frontend.General.re_open(signUpURLforContact) - - actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME) - Helper.internal_assert(vendor_contact["email"], actualInvitedEmail) - Helper.internal_assert( - "+" + vendor_contact["phone"], - Get.value_by_name( - Constants.Signup.Phone.NAME)) - Helper.internal_assert( - vendor_contact["full_name"], - Get.value_by_name( - Constants.Signup.FullName.NAME)) - Helper.internal_assert( - vendor_contact["company"], - Get.value_by_name( - Constants.Signup.Company.NAME)) diff --git a/tests/uiTests/test_set_stage.py b/tests/uiTests/test_set_stage.py deleted file mode 100644 index 6e01360..0000000 --- a/tests/uiTests/test_set_stage.py +++ /dev/null @@ -1,160 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestSetStage(TestUiBase): - @exception() - def test_set_eng_stages(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['el_email'], - Constants.Default.Password.TEXT) - stages = [ - Constants.EngagementStages.INTAKE, - Constants.EngagementStages.ACTIVE, - Constants.EngagementStages.VALIDATED, - Constants.EngagementStages.COMPLETED] - Frontend.Overview.click_on_vf(user_content) - for idx, stage in enumerate(stages[:-1]): - next_stage = stages[(idx + 1) % len(stages)] - Frontend.Overview.check_stage_next_steps( - stage, user_content['engagement_uuid']) - Frontend.Overview.change_engagement_stage(next_stage) - Frontend.General.refresh() - if Frontend.Overview.check_stage_notifications( - next_stage) is False: - raise Exception( - "Activity log for set stage wasn't found for stage %s" % - next_stage) - - @exception() - def test_set_eng_stages_via_pr_reviewer(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - Frontend.User.login( - user_content['pr_email'], - Constants.Default.Password.TEXT) - stages = [ - Constants.EngagementStages.INTAKE, - Constants.EngagementStages.ACTIVE, - Constants.EngagementStages.VALIDATED, - Constants.EngagementStages.COMPLETED] - Frontend.Overview.click_on_vf(user_content) - for idx, stage in enumerate(stages[:-1]): - next_stage = stages[(idx + 1) % len(stages)] - Frontend.Overview.check_stage_next_steps( - stage, user_content['engagement_uuid']) - Frontend.Overview.change_engagement_stage(next_stage) - Frontend.General.refresh() - if Frontend.Overview.check_stage_notifications( - next_stage) is False: - raise Exception( - "Activity log for set stage wasn't found for stage %s" % - next_stage) - - @exception() - def test_admin_ro_set_stage_negative(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - stages = [ - Constants.EngagementStages.INTAKE, - Constants.EngagementStages.ACTIVE, - Constants.EngagementStages.VALIDATED, - Constants.EngagementStages.COMPLETED] - Frontend.User.login( - Constants.Users.AdminRO.EMAIL, - Constants.Default.Password.TEXT) - Frontend.Dashboard.statuses_search_vf( - user_content['engagement_manual_id'], - user_content['vfName']) - for idx, stage in enumerate(stages[:-1]): - next_stage = stages[(idx + 1) % len(stages)] - Frontend.Overview.change_engagement_stage( - next_stage, is_negative=True) - logger.debug("Admin_ro failed to change stage to %s" % stage) - - @exception() - def test_set_eng_stages_negative(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - stages = [ - Constants.EngagementStages.INTAKE, - Constants.EngagementStages.ACTIVE, - Constants.EngagementStages.VALIDATED, - Constants.EngagementStages.COMPLETED] - Frontend.User.login( - user_content['email'], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - for idx, stage in enumerate(stages[:-1]): - next_stage = stages[(idx + 1) % len(stages)] - Frontend.Overview.change_engagement_stage( - next_stage, is_negative=True) - logger.debug( - "User %s failed to change stage to %s" % - (user_content['email'], stage)) - - @exception() - def test_set_eng_stages_negative_via_pr(self): - user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - stages = [ - Constants.EngagementStages.INTAKE, - Constants.EngagementStages.ACTIVE, - Constants.EngagementStages.VALIDATED, - Constants.EngagementStages.COMPLETED] - Frontend.User.login( - user_content['pr_email'], - Constants.Default.Password.TEXT) - Frontend.Overview.click_on_vf(user_content) - for idx, stage in enumerate(stages[:-1]): - next_stage = stages[(idx + 1) % len(stages)] - Frontend.Overview.change_engagement_stage( - next_stage, is_negative=False) - logger.debug( - "User %s failed to change stage to %s" % - (user_content['pr_email'], stage)) diff --git a/tests/uiTests/test_ssh_key.py b/tests/uiTests/test_ssh_key.py deleted file mode 100644 index dc958d0..0000000 --- a/tests/uiTests/test_ssh_key.py +++ /dev/null @@ -1,97 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -''' - Purpose: Test SSH Public Key validation, positive and negative. - Steps: - - Create user and activate the user account. - - Modal window: add VF, add vendor contact, invite team member, - add a valid SSH key. - - Go to account page. - - Clear SSH key text-box and add an invalid SSH key. - - Verify error message. - - Change the invalid key to a valid one (RSA). - - Verify success message. -''' - -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestSSHKey(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestSSHKey, cls).setUpClass() - - cls.user_content = API.Bridge.create_engagement(wait_for_gitlab=False) - - def setUp(self): - super(TestSSHKey, self).setUp() - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) - - @exception() - def test_ssh_key_valid(self): - validSSHKey = Helper.generate_sshpub_key() - logger.debug(validSSHKey) - Frontend.User.set_ssh_key_from_account(validSSHKey) - - @exception() - def test_ssh_key_invalid(self): - Frontend.Overview.click_on_vf(self.user_content) - validSSHKey = Helper.generate_sshpub_key() - invalidSSHKey = validSSHKey[8:] - logger.debug(invalidSSHKey) - Frontend.User.set_ssh_key_from_account(invalidSSHKey, is_negative=True) - - @exception() - def test_set_invalid_ssh_key_in_wizard(self): - Frontend.Dashboard.click_on_create_vf() - Frontend.Wizard.add_vf() - Frontend.Wizard.add_vendor_contact() - Frontend.Wizard.invite_team_members(Helper.rand_invite_email()) - Frontend.Wizard.add_ssh_key(is_negative=True) diff --git a/tests/uiTests/test_ui_base.py b/tests/uiTests/test_ui_base.py deleted file mode 100644 index 26dd2a5..0000000 --- a/tests/uiTests/test_ui_base.py +++ /dev/null @@ -1,167 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -import logging -import platform -import sys -from timeit import default_timer as timer -import unittest - -from pyvirtualdisplay import Display # For Linux only -import requests -from requests.packages.urllib3.exceptions import InsecureRequestWarning -from selenium.webdriver.common.action_chains import ActionChains - -from iceci.decorator.logFuncEntry import logFuncEntry -from services.constants import Constants -from services.database.db_general import DBGeneral -from services.logging_service import LoggingServiceFactory -from services.session import session - -requests.packages.urllib3.disable_warnings(InsecureRequestWarning) -logger = LoggingServiceFactory.get_logger() -stream_handler = logging.StreamHandler(sys.stdout) - - -class TestUiBase(unittest.TestCase): - windows = [] - one_web_driver_enabled = True - - @classmethod - def setUpClass(cls): - super(TestUiBase, cls).setUpClass() - cls.display = None - if platform.system() == 'Linux': - cls.display = Display(visible=0, size=(1920, 1080)) - cls.display.start() - - if cls.one_web_driver_enabled: - session.setup_driver() - - def go_to_web_page(self, address): - self.websiteUrl = address - - session.ice_driver.get("about:blank") - session.ice_driver.get(self.websiteUrl) - - @logFuncEntry - def setUp(self): - logger.addHandler(stream_handler) - - self.fullClassName = __name__ - self.className = self.__class__.__name__ - logger.debug( - "---------------------- TestCase - Start - Class " + - self.className + - " Function " + - self._testMethodName + - " ----------------------") - - self.ice_driver = session.get_driver() - - if not self.one_web_driver_enabled: - self.ice_driver = session.setup_driver() - elif self.ice_driver is None: - self.ice_driver = session.setup_driver() - - self.go_to_web_page(Constants.Default.LoginURL.TEXT) - - session.ice_driver.implicitly_wait(session.wait_until_implicit_time) - self.actions = ActionChains(self.ice_driver) - self.windows.append(session.ice_driver.window_handles[0]) - session.ice_driver.maximize_window() - - self.startTime = timer() - self.funcName = self._testMethodName - self.testName = self.funcName - - @logFuncEntry - def tearDown(self): - self.endTime = timer() - self.testDuration = str(self.endTime - self.startTime) - self.results() - if self.one_web_driver_enabled is None \ - or not self.one_web_driver_enabled: - session.ice_driver.quit() - else: - self.go_to_web_page(Constants.Default.LoginURL.TEXT) - logger.debug( - "---------------------- TestCase - End - Class " + - self.className + - " Function " + - self._testMethodName + - " ----------------------\n") - try: - logging.getLogger().info("BB") - finally: - logger.removeHandler(stream_handler) - session.errorList = "" - session.errorCounter = 0 - - @classmethod - def tearDownClass(cls): - session.close_driver() - if cls.display: - cls.display.stop() - super(TestUiBase, cls).tearDownClass() - - @logFuncEntry - def results(self): - params = { - "testType": "E2E Test", - "testFeature": self.className, - "testResult": "PASS", - "testName": self.funcName, - "duration": self.testDuration} - if (session.errorCounter == 0): - DBGeneral.insert_results( - params["testType"], - params["testFeature"], - params["testResult"], - params["testName"], - params['duration']) - else: - params["testResult"] = "FAIL" # Mark test as fail. - # Add the errors to notes column in table. - params["notes"] = session.errorList - DBGeneral.insert_results( - params["testType"], - params["testFeature"], - params["testResult"], - params["testName"], - params['duration'], - params["notes"]) diff --git a/tests/uiTests/test_user_profile_settings.py b/tests/uiTests/test_user_profile_settings.py deleted file mode 100644 index 8a25e02..0000000 --- a/tests/uiTests/test_user_profile_settings.py +++ /dev/null @@ -1,78 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.logging_service import LoggingServiceFactory -from services.types import API, Frontend, DB -from tests.uiTests.test_ui_base import TestUiBase - - -logger = LoggingServiceFactory.get_logger() - - -class TestUserProfileSettings(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestUserProfileSettings, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - def setUp(self): - super(TestUserProfileSettings, self).setUp() - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) - - @exception() - def test_user_profile_settings_page_exists(self): - Frontend.User.go_to_user_profile_settings() - - @exception() - def test_user_profile_checkboxes(self): - Frontend.User.go_to_user_profile_settings() - Frontend.User.check_user_profile_settings_checkboxes() - DB.User.validate_user_profile_settings_in_db( - self.user_content['email'], False) - Frontend.General.refresh() - Frontend.User.validate_user_profile_settings_checkboxes(False) - Frontend.User.check_user_profile_settings_checkboxes() - DB.User.validate_user_profile_settings_in_db( - self.user_content['email'], True) diff --git a/tests/uiTests/test_validate_signup.py b/tests/uiTests/test_validate_signup.py deleted file mode 100644 index dce246f..0000000 --- a/tests/uiTests/test_validate_signup.py +++ /dev/null @@ -1,113 +0,0 @@ -# ============LICENSE_START========================================== -# org.onap.vvp/test-engine -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -from iceci.decorator.exception_decor import exception -from services.constants import Constants -from services.types import API, Frontend, DB -from services.helper import Helper -from tests.uiTests.test_ui_base import TestUiBase - - -class TestValidateSignup(TestUiBase): - user_content = None - - @classmethod - def setUpClass(cls): - super(TestValidateSignup, cls).setUpClass() - - cls.user_content = API.VirtualFunction.create_engagement( - wait_for_gitlab=False) - - @exception() - def test_create_and_activateUser(self): - '''Create user with rest API, login and activate.''' - user_data = API.User.create_new_user() - Frontend.User.login( - user_data['email'], - Constants.Default.Password.TEXT, - Constants.Toast.ID) - Frontend.General.verify_toast_message( - Constants.Dashboard.ActivateMsg.Fail.TEXT) - activationUrl = DB.User.get_activation_url(user_data['email']) - Frontend.General.re_open(activationUrl) - Frontend.User.login( - user_data['email'], - Constants.Default.Password.TEXT) - Frontend.General.verify_toast_message( - Constants.Dashboard.ActivateMsg.Success.TEXT) - - @exception() - def test_activate_user_and_validate_account(self): - '''Go to Account page and validate details after signup and login.''' - Frontend.User.login( - self.user_content['email'], - Constants.Default.Password.TEXT) - Frontend.User.go_to_account() - Frontend.General.form_validate_company(self.user_content['vendor']) - Frontend.General.form_validate_name(self.user_content['full_name']) - Frontend.General.form_validate_email(self.user_content['email']) - Frontend.General.form_validate_phone(Constants.Default.Phone.TEXT) - Frontend.General.form_validate_ssh("") # No SSH key. - - @exception() - def test_signup_page_sanity(self): - ''' - Purpose: Sanity test for sign-up page. - Steps: - - Go to sign-up page - - Verify all approved vendors are listed - - Verify all form fields exist. - - Submit form without reCAPTCHA and verify error message. - - Click on "Already have an account" and verify link. - ''' - Frontend.General.go_to_signup_from_login() - vendors_list = DB.General.get_vendors_list() - for vendor in vendors_list: - Frontend.General.select_vendor_from_list(vendor) - Frontend.General.form_enter_name(Helper.rand_string("randomString")) - Frontend.General.form_enter_email(Helper.rand_string("email")) - Frontend.General.form_enter_phone(Constants.Default.Phone.TEXT) - Frontend.General.form_enter_password( - Helper.rand_string("randomString")) - Frontend.General.form_check_checkbox( - Constants.Signup.RegularEmail.XPATH) - Frontend.General.form_check_checkbox( - Constants.Signup.AcceptTerms.XPATH) - Frontend.General.click_on_submit() - Frontend.General.verify_toast_message( - Constants.Signup.Toast.Captcha.TEXT) - Frontend.General.go_to_login_from_signup() -- cgit 1.2.3-korg